@dogsbay/plugin-ask 0.2.0-beta.87 → 0.2.0-beta.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/client.js +293 -82
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/md.js +1 -1
- package/dist/md.js.map +1 -1
- package/dist/protocol.d.ts +25 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +26 -0
- package/dist/protocol.js.map +1 -1
- package/dist/schema.d.ts +22 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +21 -0
- package/dist/schema.js.map +1 -1
- package/package.json +2 -2
- package/src/RightRailAsk.astro +12 -1
- package/src/client.ts +292 -83
- package/src/styles.css +47 -1
package/README.md
CHANGED
|
@@ -34,6 +34,8 @@ plugins:
|
|
|
34
34
|
| `endpoint` | yes | — | URL of the backend the widget calls. |
|
|
35
35
|
| `site` | yes | — | Site id sent with each request to select the corpus. |
|
|
36
36
|
| `mode` | no | `answer` | `answer` (generated answer) or `search` (results). |
|
|
37
|
+
| `conversational` | no | `true` | Multi-turn chat with context; `false` = single-shot. |
|
|
38
|
+
| `maxTurns` | no | `8` | Max prior messages sent as context. |
|
|
37
39
|
| `buttonLabel` | no | `Ask AI` | Floating button text. |
|
|
38
40
|
| `title` | no | `Ask the docs` | Modal heading. |
|
|
39
41
|
| `placeholder` | no | `Ask a question…` | Input placeholder. |
|
package/dist/client.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Client runtime for `@dogsbay/plugin-ask`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Renders a multi-turn "Ask AI" conversation in two targets that share one
|
|
5
|
+
* code path:
|
|
6
6
|
* - **Docked panel** — a server-rendered shell (`RightRailAsk.astro`,
|
|
7
|
-
* `[data-dba-panel="rail"]`)
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* there's no rail (floating placement, wide/API pages) and as the mobile
|
|
11
|
-
* entry when a docked panel exists.
|
|
7
|
+
* `[data-dba-panel="rail"]`) placed in DocsLayout's `right-rail` slot.
|
|
8
|
+
* - **Floating modal** — a body-level button + `<dialog>` built here; the
|
|
9
|
+
* fallback on rail-less layouts and the mobile entry when a panel exists.
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* Each turn appends to a `.dba-thread`; with `conversational` on (default) the
|
|
12
|
+
* history is sent as context so follow-ups are understood. Astro view
|
|
13
|
+
* transitions swap the document, so we mount on `astro:page-load` and tear the
|
|
14
|
+
* floating widget down on `astro:before-swap` (the docked shell is re-wired).
|
|
16
15
|
*/
|
|
17
16
|
// @ts-expect-error: virtual module resolved by the Dogsbay Vite alias at build.
|
|
18
17
|
import config from "virtual:dogsbay-plugin-config/@dogsbay/plugin-ask";
|
|
19
|
-
import { buildAskRequest, extractText, parseSources } from "./protocol.js";
|
|
18
|
+
import { buildAskRequest, buildChatRequest, trimHistory, extractText, parseSources, shouldRetryTurnstile, } from "./protocol.js";
|
|
20
19
|
import { renderMarkdown, escapeHtml } from "./md.js";
|
|
21
20
|
const cfg = config;
|
|
22
21
|
// Turnstile token (refreshed per ask). Populated by the widget callbacks.
|
|
@@ -41,83 +40,275 @@ function loadTurnstile() {
|
|
|
41
40
|
function sourcesHtml(sources) {
|
|
42
41
|
const items = sources
|
|
43
42
|
.map((s) => s.href
|
|
44
|
-
? `<li><a href="${escapeHtml(s.href)}"
|
|
43
|
+
? `<li><a href="${escapeHtml(s.href)}">${escapeHtml(s.label)}</a></li>`
|
|
45
44
|
: `<li>${escapeHtml(s.label)}</li>`)
|
|
46
45
|
.join("");
|
|
47
46
|
return `<div class="dba-sources"><div class="dba-sources-title">Sources</div><ul>${items}</ul></div>`;
|
|
48
47
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
// ─── Conversation persistence (sessionStorage; tab-scoped) ───────────────────
|
|
49
|
+
// Persisting the reader's own conversation lets it survive a page refresh and
|
|
50
|
+
// same-window navigation (e.g. clicking a source link). Tab-scoped, cleared on
|
|
51
|
+
// tab close, never sent anywhere. Gated by config + a per-tab reader opt-out.
|
|
52
|
+
const STORE = "dba-ask";
|
|
53
|
+
const OPT_OUT = "0";
|
|
54
|
+
const convoKey = () => `${STORE}:convo:${cfg.site}`;
|
|
55
|
+
const optOutKey = () => `${STORE}:save:${cfg.site}`;
|
|
56
|
+
function isPersistMode() {
|
|
57
|
+
return cfg.conversational && cfg.mode !== "search" && cfg.persistConversation;
|
|
58
|
+
}
|
|
59
|
+
function persistOptedOut() {
|
|
60
|
+
try {
|
|
61
|
+
return sessionStorage.getItem(optOutKey()) === OPT_OUT;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function persistEnabled() {
|
|
68
|
+
return isPersistMode() && !persistOptedOut();
|
|
69
|
+
}
|
|
70
|
+
function loadStoredHistory() {
|
|
71
|
+
if (!persistEnabled())
|
|
72
|
+
return [];
|
|
73
|
+
try {
|
|
74
|
+
const parsed = JSON.parse(sessionStorage.getItem(convoKey()) || "null");
|
|
75
|
+
if (!Array.isArray(parsed))
|
|
76
|
+
return [];
|
|
77
|
+
return parsed.filter((m) => m && (m.role === "user" || m.role === "assistant") && typeof m.content === "string");
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function saveStoredHistory(history) {
|
|
84
|
+
if (!persistEnabled())
|
|
56
85
|
return;
|
|
57
|
-
submit.disabled = true;
|
|
58
|
-
answer.dataset.state = "loading";
|
|
59
|
-
answer.textContent = "…";
|
|
60
86
|
try {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
let buf = ""; // line buffer (don't parse a frame split across reads)
|
|
77
|
-
let rawAll = ""; // whole stream, for the trailing `event: chunks` sources
|
|
78
|
-
let answerMd = ""; // accumulated answer markdown
|
|
79
|
-
for (;;) {
|
|
80
|
-
const { value, done } = await reader.read();
|
|
81
|
-
if (done)
|
|
82
|
-
break;
|
|
83
|
-
const text = decoder.decode(value, { stream: true });
|
|
84
|
-
rawAll += text;
|
|
85
|
-
buf += text;
|
|
86
|
-
const nl = buf.lastIndexOf("\n");
|
|
87
|
-
if (nl >= 0) {
|
|
88
|
-
answerMd += extractText(buf.slice(0, nl + 1));
|
|
89
|
-
buf = buf.slice(nl + 1);
|
|
90
|
-
answer.innerHTML = renderMarkdown(answerMd);
|
|
91
|
-
}
|
|
87
|
+
sessionStorage.setItem(convoKey(), JSON.stringify(history));
|
|
88
|
+
}
|
|
89
|
+
catch { /* storage off */ }
|
|
90
|
+
}
|
|
91
|
+
function clearStoredHistory() {
|
|
92
|
+
try {
|
|
93
|
+
sessionStorage.removeItem(convoKey());
|
|
94
|
+
}
|
|
95
|
+
catch { /* ignore */ }
|
|
96
|
+
}
|
|
97
|
+
function setPersistOptOut(optedOut) {
|
|
98
|
+
try {
|
|
99
|
+
if (optedOut) {
|
|
100
|
+
sessionStorage.setItem(optOutKey(), OPT_OUT);
|
|
101
|
+
clearStoredHistory();
|
|
92
102
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
else
|
|
104
|
+
sessionStorage.removeItem(optOutKey());
|
|
105
|
+
}
|
|
106
|
+
catch { /* ignore */ }
|
|
107
|
+
}
|
|
108
|
+
/** POST a prebuilt request body with the current Turnstile token (if any). */
|
|
109
|
+
function postBody(body) {
|
|
110
|
+
return fetch(cfg.endpoint, {
|
|
111
|
+
method: "POST",
|
|
112
|
+
headers: { "Content-Type": "application/json" },
|
|
113
|
+
body: JSON.stringify({ ...body, ...(turnstileToken ? { turnstileToken } : {}) }),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/** Resolve once a Turnstile token is available, or after `timeoutMs`. */
|
|
117
|
+
function waitForTurnstileToken(timeoutMs) {
|
|
118
|
+
if (turnstileToken)
|
|
119
|
+
return Promise.resolve(turnstileToken);
|
|
120
|
+
return new Promise((resolve) => {
|
|
121
|
+
const start = Date.now();
|
|
122
|
+
const tick = () => {
|
|
123
|
+
if (turnstileToken)
|
|
124
|
+
return resolve(turnstileToken);
|
|
125
|
+
if (Date.now() - start >= timeoutMs)
|
|
126
|
+
return resolve(null);
|
|
127
|
+
setTimeout(tick, 150);
|
|
128
|
+
};
|
|
129
|
+
tick();
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/** Nearest scrollable ancestor (the rail aside, or the dialog's thread). */
|
|
133
|
+
function scrollParent(el) {
|
|
134
|
+
let p = el.parentElement;
|
|
135
|
+
while (p) {
|
|
136
|
+
const oy = getComputedStyle(p).overflowY;
|
|
137
|
+
if ((oy === "auto" || oy === "scroll") && p.scrollHeight > p.clientHeight)
|
|
138
|
+
return p;
|
|
139
|
+
p = p.parentElement;
|
|
98
140
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
/** Stream a proxy response into an answer element; returns the answer Markdown. */
|
|
144
|
+
async function streamInto(res, answer) {
|
|
145
|
+
answer.textContent = "";
|
|
146
|
+
answer.dataset.state = "streaming";
|
|
147
|
+
const sc = scrollParent(answer);
|
|
148
|
+
// Keep the newest content in view as it streams — but only if the reader is
|
|
149
|
+
// already at the bottom, so we don't yank them up while they re-read earlier.
|
|
150
|
+
const atBottom = () => !sc || sc.scrollTop + sc.clientHeight >= sc.scrollHeight - 80;
|
|
151
|
+
const render = (html) => {
|
|
152
|
+
const stick = atBottom();
|
|
153
|
+
answer.innerHTML = html;
|
|
154
|
+
if (stick && sc)
|
|
155
|
+
sc.scrollTop = sc.scrollHeight;
|
|
156
|
+
};
|
|
157
|
+
const reader = res.body.getReader();
|
|
158
|
+
const decoder = new TextDecoder();
|
|
159
|
+
let buf = ""; // line buffer (don't parse a frame split across reads)
|
|
160
|
+
let rawAll = ""; // whole stream, for the trailing `event: chunks` sources
|
|
161
|
+
let answerMd = ""; // accumulated answer markdown
|
|
162
|
+
for (;;) {
|
|
163
|
+
const { value, done } = await reader.read();
|
|
164
|
+
if (done)
|
|
165
|
+
break;
|
|
166
|
+
const text = decoder.decode(value, { stream: true });
|
|
167
|
+
rawAll += text;
|
|
168
|
+
buf += text;
|
|
169
|
+
const nl = buf.lastIndexOf("\n");
|
|
170
|
+
if (nl >= 0) {
|
|
171
|
+
answerMd += extractText(buf.slice(0, nl + 1));
|
|
172
|
+
buf = buf.slice(nl + 1);
|
|
173
|
+
render(renderMarkdown(answerMd));
|
|
174
|
+
}
|
|
102
175
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
176
|
+
if (buf)
|
|
177
|
+
answerMd += extractText(buf);
|
|
178
|
+
const sources = parseSources(rawAll, cfg.linkBase);
|
|
179
|
+
render(renderMarkdown(answerMd) + (sources.length ? sourcesHtml(sources) : ""));
|
|
180
|
+
answer.dataset.state = "done";
|
|
181
|
+
return answerMd;
|
|
182
|
+
}
|
|
183
|
+
function appendUserTurn(thread, text) {
|
|
184
|
+
const turn = document.createElement("div");
|
|
185
|
+
turn.className = "dba-turn dba-turn-user";
|
|
186
|
+
turn.textContent = text; // textContent — no injection from the question
|
|
187
|
+
thread.appendChild(turn);
|
|
188
|
+
}
|
|
189
|
+
function appendAssistantTurn(thread) {
|
|
190
|
+
const turn = document.createElement("div");
|
|
191
|
+
turn.className = "dba-turn dba-turn-assistant";
|
|
192
|
+
const answer = document.createElement("div");
|
|
193
|
+
answer.className = "dba-answer";
|
|
194
|
+
answer.setAttribute("aria-live", "polite");
|
|
195
|
+
answer.dataset.state = "loading";
|
|
196
|
+
answer.textContent = "…";
|
|
197
|
+
turn.appendChild(answer);
|
|
198
|
+
thread.appendChild(turn);
|
|
199
|
+
return answer;
|
|
200
|
+
}
|
|
201
|
+
/** Re-render a stored conversation into the thread (no streaming). */
|
|
202
|
+
function restoreThread(thread, history) {
|
|
203
|
+
for (const m of history) {
|
|
204
|
+
if (m.role === "user") {
|
|
205
|
+
appendUserTurn(thread, m.content);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
const a = appendAssistantTurn(thread);
|
|
209
|
+
a.dataset.state = "done";
|
|
210
|
+
a.innerHTML = renderMarkdown(m.content);
|
|
211
|
+
}
|
|
108
212
|
}
|
|
109
213
|
}
|
|
110
|
-
|
|
111
|
-
|
|
214
|
+
/**
|
|
215
|
+
* Wire one conversation surface (docked panel or floating dialog). Each keeps
|
|
216
|
+
* its own history closure. Shares the stream + Turnstile-retry logic.
|
|
217
|
+
*/
|
|
218
|
+
function wireConversation(els) {
|
|
219
|
+
// Restore a persisted conversation (refresh / same-window navigation).
|
|
220
|
+
const history = loadStoredHistory();
|
|
221
|
+
if (history.length)
|
|
222
|
+
restoreThread(els.thread, history);
|
|
223
|
+
// Reader opt-out toggle: reflect the stored preference, and on change
|
|
224
|
+
// start/stop persisting (clearing storage on opt-out).
|
|
225
|
+
if (els.remember) {
|
|
226
|
+
els.remember.checked = !persistOptedOut();
|
|
227
|
+
els.remember.addEventListener("change", () => {
|
|
228
|
+
setPersistOptOut(!els.remember.checked);
|
|
229
|
+
if (els.remember.checked)
|
|
230
|
+
saveStoredHistory(history);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
const reset = () => {
|
|
234
|
+
els.thread.innerHTML = "";
|
|
235
|
+
history.length = 0;
|
|
236
|
+
clearStoredHistory();
|
|
237
|
+
};
|
|
238
|
+
els.newChat?.addEventListener("click", () => {
|
|
239
|
+
reset();
|
|
240
|
+
els.input.focus();
|
|
241
|
+
});
|
|
242
|
+
els.form.addEventListener("submit", async (e) => {
|
|
112
243
|
e.preventDefault();
|
|
113
|
-
|
|
244
|
+
const query = els.input.value.trim();
|
|
245
|
+
if (!query)
|
|
246
|
+
return;
|
|
247
|
+
els.input.value = "";
|
|
248
|
+
// Single-shot modes show one exchange at a time.
|
|
249
|
+
const conversational = cfg.conversational && cfg.mode !== "search";
|
|
250
|
+
if (!conversational)
|
|
251
|
+
els.thread.innerHTML = "";
|
|
252
|
+
appendUserTurn(els.thread, query);
|
|
253
|
+
const answer = appendAssistantTurn(els.thread);
|
|
254
|
+
answer.scrollIntoView?.({ block: "nearest" });
|
|
255
|
+
els.submit.disabled = true;
|
|
256
|
+
// Build the request body. Conversational answer mode sends trimmed history;
|
|
257
|
+
// search and non-conversational answer stay single-shot.
|
|
258
|
+
let body;
|
|
259
|
+
if (cfg.mode === "search") {
|
|
260
|
+
body = buildAskRequest(cfg.site, query, "search");
|
|
261
|
+
}
|
|
262
|
+
else if (conversational) {
|
|
263
|
+
history.push({ role: "user", content: query });
|
|
264
|
+
body = buildChatRequest(cfg.site, trimHistory(history, cfg.maxTurns));
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
body = buildAskRequest(cfg.site, query, "answer");
|
|
268
|
+
}
|
|
269
|
+
try {
|
|
270
|
+
let res = await postBody(body);
|
|
271
|
+
// Turnstile race: lazy-loaded on first interaction, so a fast submit can
|
|
272
|
+
// beat the token and the proxy 403s. Wait once for a fresh token + retry.
|
|
273
|
+
if (shouldRetryTurnstile(res.status, !!cfg.turnstileSitekey)) {
|
|
274
|
+
loadTurnstile();
|
|
275
|
+
if (turnstileToken) {
|
|
276
|
+
turnstileApi()?.reset?.();
|
|
277
|
+
turnstileToken = null;
|
|
278
|
+
}
|
|
279
|
+
const token = await waitForTurnstileToken(4000);
|
|
280
|
+
if (token)
|
|
281
|
+
res = await postBody(body);
|
|
282
|
+
}
|
|
283
|
+
if (!res.ok || !res.body) {
|
|
284
|
+
throw new Error(`Request failed (${res.status})`);
|
|
285
|
+
}
|
|
286
|
+
const answerMd = await streamInto(res, answer);
|
|
287
|
+
if (conversational) {
|
|
288
|
+
history.push({ role: "assistant", content: answerMd });
|
|
289
|
+
saveStoredHistory(history);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
catch (err) {
|
|
293
|
+
answer.dataset.state = "error";
|
|
294
|
+
answer.textContent = `Sorry — something went wrong. ${err.message}`;
|
|
295
|
+
// Drop the unanswered user turn from history so the next send isn't
|
|
296
|
+
// skewed by a question that never got a reply.
|
|
297
|
+
if (conversational && history[history.length - 1]?.role === "user")
|
|
298
|
+
history.pop();
|
|
299
|
+
}
|
|
300
|
+
finally {
|
|
301
|
+
els.submit.disabled = false;
|
|
302
|
+
// Turnstile tokens are single-use — refresh for the next question.
|
|
303
|
+
turnstileApi()?.reset?.();
|
|
304
|
+
turnstileToken = null;
|
|
305
|
+
}
|
|
114
306
|
});
|
|
115
307
|
}
|
|
116
308
|
const ROOT_ID = "dba-root";
|
|
117
309
|
/**
|
|
118
310
|
* Wire the server-rendered docked panel if present. Returns whether a docked
|
|
119
|
-
* shell exists
|
|
120
|
-
* a mobile-only entry). Idempotent via a `data-dba-wired` marker.
|
|
311
|
+
* shell exists (so the caller knows to mark the floating button mobile-only).
|
|
121
312
|
*/
|
|
122
313
|
function wireDockedPanel() {
|
|
123
314
|
const panel = document.querySelector('[data-dba-panel="rail"]');
|
|
@@ -128,14 +319,21 @@ function wireDockedPanel() {
|
|
|
128
319
|
panel.dataset.dbaWired = "1";
|
|
129
320
|
const form = panel.querySelector("[data-dba-form]");
|
|
130
321
|
const input = panel.querySelector(".dba-input");
|
|
131
|
-
const answer = panel.querySelector(".dba-answer");
|
|
132
322
|
const submit = panel.querySelector(".dba-submit");
|
|
133
|
-
|
|
323
|
+
const thread = panel.querySelector("[data-dba-thread]");
|
|
324
|
+
if (!form || !input || !submit || !thread)
|
|
134
325
|
return true;
|
|
135
326
|
// Lazy-load Turnstile on first interaction so a page that merely shows the
|
|
136
327
|
// docked panel still sets no third-party cookies until the reader engages.
|
|
137
328
|
input.addEventListener("focus", loadTurnstile, { once: true });
|
|
138
|
-
|
|
329
|
+
wireConversation({
|
|
330
|
+
form,
|
|
331
|
+
input,
|
|
332
|
+
submit,
|
|
333
|
+
thread,
|
|
334
|
+
newChat: panel.querySelector("[data-dba-newchat]"),
|
|
335
|
+
remember: panel.querySelector("[data-dba-remember]"),
|
|
336
|
+
});
|
|
139
337
|
return true;
|
|
140
338
|
}
|
|
141
339
|
/**
|
|
@@ -161,27 +359,37 @@ function mountFloating(hasDocked) {
|
|
|
161
359
|
const tsMarkup = cfg.turnstileSitekey
|
|
162
360
|
? `<div class="cf-turnstile dba-turnstile" data-sitekey="${cfg.turnstileSitekey}" data-appearance="interaction-only" data-callback="__dbaTsCb" data-expired-callback="__dbaTsExpired" data-error-callback="__dbaTsExpired"></div>`
|
|
163
361
|
: "";
|
|
362
|
+
const newChatMarkup = cfg.conversational
|
|
363
|
+
? `<button type="button" class="dba-newchat" data-dba-newchat>New chat</button>`
|
|
364
|
+
: "";
|
|
365
|
+
const rememberMarkup = cfg.conversational && cfg.persistConversation
|
|
366
|
+
? `<label class="dba-remember"><input type="checkbox" data-dba-remember checked /> Remember conversation</label>`
|
|
367
|
+
: "";
|
|
164
368
|
dialog.innerHTML = `
|
|
165
369
|
<form class="dba-form" method="dialog" data-dba-form>
|
|
166
370
|
<header class="dba-header">
|
|
167
371
|
<h2 class="dba-title"></h2>
|
|
168
|
-
<
|
|
372
|
+
<div class="dba-header-actions">
|
|
373
|
+
${newChatMarkup}
|
|
374
|
+
<button type="button" class="dba-close" aria-label="Close">×</button>
|
|
375
|
+
</div>
|
|
169
376
|
</header>
|
|
377
|
+
<div class="dba-thread" data-dba-thread></div>
|
|
170
378
|
<div class="dba-inputrow">
|
|
171
379
|
<input class="dba-input" type="text" autocomplete="off" enterkeyhint="search" />
|
|
172
380
|
<button type="submit" class="dba-submit">Ask</button>
|
|
173
381
|
</div>
|
|
174
382
|
${tsMarkup}
|
|
175
|
-
|
|
383
|
+
${rememberMarkup}
|
|
176
384
|
</form>
|
|
177
385
|
`;
|
|
178
386
|
// textContent (not innerHTML) for user-configurable strings — no injection.
|
|
179
387
|
dialog.querySelector(".dba-title").textContent = cfg.title;
|
|
180
388
|
const input = dialog.querySelector(".dba-input");
|
|
181
389
|
input.placeholder = cfg.placeholder;
|
|
182
|
-
const answer = dialog.querySelector(".dba-answer");
|
|
183
390
|
const form = dialog.querySelector(".dba-form");
|
|
184
391
|
const submit = dialog.querySelector(".dba-submit");
|
|
392
|
+
const thread = dialog.querySelector("[data-dba-thread]");
|
|
185
393
|
button.addEventListener("click", () => {
|
|
186
394
|
// Lazy-load Turnstile only when the user engages, so normal page loads set
|
|
187
395
|
// no third-party cookies (Lighthouse-clean) and don't fetch the widget.
|
|
@@ -190,23 +398,26 @@ function mountFloating(hasDocked) {
|
|
|
190
398
|
input.focus();
|
|
191
399
|
});
|
|
192
400
|
dialog.querySelector(".dba-close").addEventListener("click", () => dialog.close());
|
|
193
|
-
|
|
401
|
+
wireConversation({
|
|
402
|
+
form,
|
|
403
|
+
input,
|
|
404
|
+
submit,
|
|
405
|
+
thread,
|
|
406
|
+
newChat: dialog.querySelector("[data-dba-newchat]"),
|
|
407
|
+
remember: dialog.querySelector("[data-dba-remember]"),
|
|
408
|
+
});
|
|
194
409
|
root.append(button, dialog);
|
|
195
410
|
document.body.appendChild(root);
|
|
196
411
|
}
|
|
197
412
|
function mount() {
|
|
198
413
|
if (typeof document === "undefined")
|
|
199
414
|
return;
|
|
200
|
-
// Wire the docked panel first; its presence decides whether the floating
|
|
201
|
-
// button is a full widget (no rail) or just the mobile entry (rail present).
|
|
202
415
|
const hasDocked = wireDockedPanel();
|
|
203
416
|
mountFloating(hasDocked);
|
|
204
417
|
}
|
|
205
418
|
function unmount() {
|
|
206
419
|
if (typeof document === "undefined")
|
|
207
420
|
return;
|
|
208
|
-
// Only the floating widget is ours to remove; the docked shell is part of the
|
|
209
|
-
// document Astro swaps, and is re-wired by mount() on the next page-load.
|
|
210
421
|
document.getElementById(ROOT_ID)?.remove();
|
|
211
422
|
}
|
|
212
423
|
if (typeof document !== "undefined") {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,gFAAgF;AAChF,OAAO,MAAM,MAAM,mDAAmD,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAgBrD,MAAM,GAAG,GAAG,MAAuB,CAAC;AAEpC,0EAA0E;AAC1E,IAAI,cAAc,GAAkB,IAAI,CAAC;AACzC,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAKlC,SAAS,YAAY;IACnB,OAAQ,MAAkD,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,qBAAqB,IAAI,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO;IAC3D,qBAAqB,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,GAAG,MAA4C,CAAC;IACvD,CAAC,CAAC,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,cAAc,GAAG,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,GAAG,GAAG,uDAAuD,CAAC;IAChE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IACf,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB;IACpC,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI;QACJ,CAAC,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,+CAA+C,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;QACjH,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CACtC;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,4EAA4E,KAAK,aAAa,CAAC;AACxG,CAAC;AASD;;;GAGG;AACH,KAAK,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAU;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;gBAC7C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAO,uDAAuD;QAC3E,IAAI,MAAM,GAAG,EAAE,CAAC,CAAI,yDAAyD;QAC7E,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAE,8BAA8B;QAClD,SAAS,CAAC;YACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,IAAI,CAAC;YACf,GAAG,IAAI,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACZ,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxB,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,IAAI,GAAG;YAAE,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;QAC/B,MAAM,CAAC,WAAW,GAAG,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC;IACjF,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,mEAAmE;QACnE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1B,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QACxC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAG,UAAU,CAAC;AAE3B;;;;GAIG;AACH,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAc,yBAAyB,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;IAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAkB,iBAAiB,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAmB,YAAY,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAiB,aAAa,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAoB,aAAa,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvD,2EAA2E;IAC3E,2EAA2E;IAC3E,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,SAAkB;IACvC,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;QAAE,OAAO;IAE7C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;IAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IACrC,IAAI,SAAS;QAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;IAE5C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;IACjC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACrC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;IAChC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB;QACnC,CAAC,CAAC,yDAAyD,GAAG,CAAC,gBAAgB,mJAAmJ;QAClO,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,CAAC,SAAS,GAAG;;;;;;;;;;QAUb,QAAQ;;;GAGb,CAAC;IAEF,4EAA4E;IAC5E,MAAM,CAAC,aAAa,CAAqB,YAAY,CAAE,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;IAChF,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAmB,YAAY,CAAE,CAAC;IACpE,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAiB,aAAa,CAAE,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAkB,WAAW,CAAE,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAoB,aAAa,CAAE,CAAC;IAEvE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,2EAA2E;QAC3E,wEAAwE;QACxE,aAAa,EAAE,CAAC;QAChB,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAoB,YAAY,CAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEvG,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,OAAO;IACd,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,8EAA8E;IAC9E,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,KAAK,EAAE,CAAC;IACV,CAAC;IACD,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,gFAAgF;AAChF,OAAO,MAAM,MAAM,mDAAmD,CAAC;AACvE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAmBrD,MAAM,GAAG,GAAG,MAAuB,CAAC;AAEpC,0EAA0E;AAC1E,IAAI,cAAc,GAAkB,IAAI,CAAC;AACzC,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAKlC,SAAS,YAAY;IACnB,OAAQ,MAAkD,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,qBAAqB,IAAI,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO;IAC3D,qBAAqB,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,GAAG,MAA4C,CAAC;IACvD,CAAC,CAAC,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,cAAc,GAAG,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,GAAG,GAAG,uDAAuD,CAAC;IAChE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IACf,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB;IACpC,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI;QACJ,CAAC,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;QACvE,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CACtC;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,4EAA4E,KAAK,aAAa,CAAC;AACxG,CAAC;AAED,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,OAAO,GAAG,GAAG,CAAC;AACpB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC;AACpD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;AAEpD,SAAS,aAAa;IACpB,OAAO,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,mBAAmB,CAAC;AAChF,CAAC;AACD,SAAS,eAAe;IACtB,IAAI,CAAC;QAAC,OAAO,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,OAAO,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACzF,CAAC;AACD,SAAS,cAAc;IACrB,OAAO,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/C,CAAC;AACD,SAAS,iBAAiB;IACxB,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAC,EAAoB,EAAE,CACtB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CACtF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAsB;IAC/C,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,IAAI,CAAC;QAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAClG,CAAC;AACD,SAAS,kBAAkB;IACzB,IAAI,CAAC;QAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACvE,CAAC;AACD,SAAS,gBAAgB,CAAC,QAAiB;IACzC,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;YAAC,kBAAkB,EAAE,CAAC;QAAC,CAAC;;YAChF,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;QACzB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;KACjF,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,IAAI,cAAc;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,IAAI,cAAc;gBAAE,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,SAAS;gBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CAAC,EAAe;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC;QACpF,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,UAAU,CAAC,GAAa,EAAE,MAAsB;IAC7D,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;IAEnC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC;IACrF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,IAAI,KAAK,IAAI,EAAE;YAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAK,CAAC,SAAS,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAO,uDAAuD;IAC3E,IAAI,MAAM,GAAG,EAAE,CAAC,CAAI,yDAAyD;IAC7E,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAE,8BAA8B;IAClD,SAAS,CAAC;QACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,IAAI,CAAC;QACf,GAAG,IAAI,IAAI,CAAC;QACZ,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,IAAI,GAAG;QAAE,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IAC9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB,EAAE,IAAY;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,GAAG,wBAAwB,CAAC;IAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,+CAA+C;IACxE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAmB;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,GAAG,6BAA6B,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;IAChC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;IACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAWD,sEAAsE;AACtE,SAAS,aAAa,CAAC,MAAmB,EAAE,OAAsB;IAChE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAa;IACrC,uEAAuE;IACvE,MAAM,OAAO,GAAkB,iBAAiB,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM;QAAE,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvD,sEAAsE;IACtE,uDAAuD;IACvD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,eAAe,EAAE,CAAC;QAC1C,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC3C,gBAAgB,CAAC,CAAC,GAAG,CAAC,QAAS,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,QAAS,CAAC,OAAO;gBAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACnB,kBAAkB,EAAE,CAAC;IACvB,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC1C,KAAK,EAAE,CAAC;QACR,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAErB,iDAAiD;QACjD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QACnE,IAAI,CAAC,cAAc;YAAE,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAE/C,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE3B,4EAA4E;QAC5E,yDAAyD;QACzD,IAAI,IAAY,CAAC;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,yEAAyE;YACzE,0EAA0E;YAC1E,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7D,aAAa,EAAE,CAAC;gBAChB,IAAI,cAAc,EAAE,CAAC;oBACnB,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1B,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,KAAK;oBAAE,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;YAC/B,MAAM,CAAC,WAAW,GAAG,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC;YAC/E,oEAAoE;YACpE,+CAA+C;YAC/C,IAAI,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM;gBAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACpF,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5B,mEAAmE;YACnE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAG,UAAU,CAAC;AAE3B;;;GAGG;AACH,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAc,yBAAyB,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;IAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAkB,iBAAiB,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAmB,YAAY,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAoB,aAAa,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAc,mBAAmB,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvD,2EAA2E;IAC3E,2EAA2E;IAC3E,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,gBAAgB,CAAC;QACf,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO,EAAE,KAAK,CAAC,aAAa,CAAoB,oBAAoB,CAAC;QACrE,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAmB,qBAAqB,CAAC;KACvE,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,SAAkB;IACvC,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;QAAE,OAAO;IAE7C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;IAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IACrC,IAAI,SAAS;QAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;IAE5C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;IACjC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACrC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;IAChC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB;QACnC,CAAC,CAAC,yDAAyD,GAAG,CAAC,gBAAgB,mJAAmJ;QAClO,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc;QACtC,CAAC,CAAC,8EAA8E;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,mBAAmB;QAClE,CAAC,CAAC,+GAA+G;QACjH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,CAAC,SAAS,GAAG;;;;;YAKT,aAAa;;;;;;;;;QASjB,QAAQ;QACR,cAAc;;GAEnB,CAAC;IAEF,4EAA4E;IAC5E,MAAM,CAAC,aAAa,CAAqB,YAAY,CAAE,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;IAChF,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAmB,YAAY,CAAE,CAAC;IACpE,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAkB,WAAW,CAAE,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAoB,aAAa,CAAE,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAc,mBAAmB,CAAE,CAAC;IAEvE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,2EAA2E;QAC3E,wEAAwE;QACxE,aAAa,EAAE,CAAC;QAChB,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAoB,YAAY,CAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEvG,gBAAgB,CAAC;QACf,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,aAAa,CAAoB,oBAAoB,CAAC;QACtE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAmB,qBAAqB,CAAC;KACxE,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,OAAO;IACd,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,KAAK,EAAE,CAAC;IACV,CAAC;IACD,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAa5D,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAa5D,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,aAAa,CA2C7D"}
|
package/dist/index.js
CHANGED
|
@@ -59,6 +59,9 @@ export default function ask(input) {
|
|
|
59
59
|
placeholder: opts.placeholder,
|
|
60
60
|
position: opts.position,
|
|
61
61
|
placement: opts.placement,
|
|
62
|
+
conversational: opts.conversational,
|
|
63
|
+
maxTurns: opts.maxTurns,
|
|
64
|
+
persistConversation: opts.persistConversation,
|
|
62
65
|
// Base URL used to turn cited doc paths into links.
|
|
63
66
|
linkBase: ctx.config.site.url ?? "",
|
|
64
67
|
turnstileSitekey: opts.turnstileSitekey,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAmB,MAAM,aAAa,CAAC;AAE5D,6EAA6E;AAC7E,oEAAoE;AACpE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACjE,4EAA4E;AAC5E,uEAAuE;AACvE,2DAA2D;AAC3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;AAI/E,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAkB;IAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAE3B,aAAa;YACX,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC;QAED,MAAM;YACJ,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC;QAED,iBAAiB;YACf,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;gBAAE,OAAO,EAAE,CAAC;YAC7C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QAC1C,CAAC;QAED,kBAAkB,CAAC,GAAG;YACpB,sCAAsC;YACtC,oDAAoD;YACpD,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,oDAAoD;gBACpD,QAAQ,EAAG,GAAG,CAAC,MAAM,CAAC,IAAyB,CAAC,GAAG,IAAI,EAAE;gBACzD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAmB,MAAM,aAAa,CAAC;AAE5D,6EAA6E;AAC7E,oEAAoE;AACpE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACjE,4EAA4E;AAC5E,uEAAuE;AACvE,2DAA2D;AAC3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;AAI/E,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAkB;IAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAE3B,aAAa;YACX,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC;QAED,MAAM;YACJ,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC;QAED,iBAAiB;YACf,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;gBAAE,OAAO,EAAE,CAAC;YAC7C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QAC1C,CAAC;QAED,kBAAkB,CAAC,GAAG;YACpB,sCAAsC;YACtC,oDAAoD;YACpD,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,oDAAoD;gBACpD,QAAQ,EAAG,GAAG,CAAC,MAAM,CAAC,IAAyB,CAAC,GAAG,IAAI,EAAE;gBACzD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/md.js
CHANGED
|
@@ -23,7 +23,7 @@ function isSafeUrl(u) {
|
|
|
23
23
|
// Inline formatting on already-escaped text.
|
|
24
24
|
function inline(text) {
|
|
25
25
|
let t = text.replace(/`([^`]+)`/g, (_m, c) => `<code>${c}</code>`);
|
|
26
|
-
t = t.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (_m, label, url) => isSafeUrl(url) ? `<a href="${url}"
|
|
26
|
+
t = t.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (_m, label, url) => isSafeUrl(url) ? `<a href="${url}">${label}</a>` : label);
|
|
27
27
|
t = t.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>");
|
|
28
28
|
t = t.replace(/(^|[^*])\*([^*\n]+)\*/g, "$1<em>$2</em>");
|
|
29
29
|
t = t.replace(/(^|[^_])_([^_\n]+)_/g, "$1<em>$2</em>");
|
package/dist/md.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"md.js","sourceRoot":"","sources":["../src/md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,6EAA6E;IAC7E,OAAO,6CAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,6CAA6C;AAC7C,SAAS,MAAM,CAAC,IAAY;IAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,EAAE,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAC7E,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"md.js","sourceRoot":"","sources":["../src/md.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -8,8 +8,33 @@ export interface AskRequest {
|
|
|
8
8
|
query: string;
|
|
9
9
|
mode: AskMode;
|
|
10
10
|
}
|
|
11
|
+
export interface ChatMessage {
|
|
12
|
+
role: "user" | "assistant";
|
|
13
|
+
content: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ChatRequest {
|
|
16
|
+
site: string;
|
|
17
|
+
mode: "chat";
|
|
18
|
+
messages: ChatMessage[];
|
|
19
|
+
}
|
|
11
20
|
/** Build the JSON body the proxy expects. Trims the query. */
|
|
12
21
|
export declare function buildAskRequest(site: string, query: string, mode: AskMode): AskRequest;
|
|
22
|
+
/**
|
|
23
|
+
* Whether a failed request should be retried once after obtaining a Turnstile
|
|
24
|
+
* token. The proxy 403s when a Turnstile secret is configured but no valid
|
|
25
|
+
* token arrived — which happens if the widget submits before the bot token has
|
|
26
|
+
* resolved (the docked panel lazy-loads Turnstile on focus). Retry only that
|
|
27
|
+
* case: a 403 while Turnstile is enabled on this site.
|
|
28
|
+
*/
|
|
29
|
+
export declare function shouldRetryTurnstile(status: number, turnstileEnabled: boolean): boolean;
|
|
30
|
+
/** Build the JSON body for a multi-turn chat request. */
|
|
31
|
+
export declare function buildChatRequest(site: string, messages: ChatMessage[]): ChatRequest;
|
|
32
|
+
/**
|
|
33
|
+
* Trim conversation history to the last `maxTurns` messages, never leading with
|
|
34
|
+
* an `assistant` turn — the proxy prepends the `system` message, so the first
|
|
35
|
+
* sent message must be a `user`. Returns a new array.
|
|
36
|
+
*/
|
|
37
|
+
export declare function trimHistory(messages: ChatMessage[], maxTurns: number): ChatMessage[];
|
|
13
38
|
/**
|
|
14
39
|
* Tolerant extraction of human-readable text from a streamed proxy chunk.
|
|
15
40
|
*
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAEtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BjD;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAUD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUhE;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB1E"}
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAEtF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAEvF;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,CAEnF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAMpF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BjD;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAUD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUhE;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB1E"}
|