@dogsbay/plugin-ask 0.2.0-beta.88 → 0.2.0-beta.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +136 -5
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/md.js +1 -1
- package/dist/md.js.map +1 -1
- package/dist/schema.d.ts +9 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +7 -0
- package/dist/schema.js.map +1 -1
- package/package.json +2 -2
- package/src/RightRailAsk.astro +7 -0
- package/src/client.ts +121 -5
- package/src/styles.css +11 -0
package/dist/client.js
CHANGED
|
@@ -40,11 +40,72 @@ function loadTurnstile() {
|
|
|
40
40
|
function sourcesHtml(sources) {
|
|
41
41
|
const items = sources
|
|
42
42
|
.map((s) => s.href
|
|
43
|
-
? `<li><a href="${escapeHtml(s.href)}"
|
|
43
|
+
? `<li><a href="${escapeHtml(s.href)}">${escapeHtml(s.label)}</a></li>`
|
|
44
44
|
: `<li>${escapeHtml(s.label)}</li>`)
|
|
45
45
|
.join("");
|
|
46
46
|
return `<div class="dba-sources"><div class="dba-sources-title">Sources</div><ul>${items}</ul></div>`;
|
|
47
47
|
}
|
|
48
|
+
// ─── Conversation persistence (sessionStorage; tab-scoped; OPT-IN) ───────────
|
|
49
|
+
// Persisting the reader's own conversation lets it survive a page refresh and
|
|
50
|
+
// same-window navigation (e.g. clicking a source link). It is OFF by default —
|
|
51
|
+
// nothing is stored until the reader opts in via "Remember conversation".
|
|
52
|
+
// Tab-scoped, cleared on tab close, never sent anywhere.
|
|
53
|
+
const STORE = "dba-ask";
|
|
54
|
+
const OPT_IN = "1";
|
|
55
|
+
const convoKey = () => `${STORE}:convo:${cfg.site}`;
|
|
56
|
+
const optInKey = () => `${STORE}:save:${cfg.site}`;
|
|
57
|
+
function isPersistMode() {
|
|
58
|
+
return cfg.conversational && cfg.mode !== "search" && cfg.persistConversation;
|
|
59
|
+
}
|
|
60
|
+
function persistOptedIn() {
|
|
61
|
+
try {
|
|
62
|
+
return sessionStorage.getItem(optInKey()) === OPT_IN;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function persistEnabled() {
|
|
69
|
+
return isPersistMode() && persistOptedIn();
|
|
70
|
+
}
|
|
71
|
+
function loadStoredHistory() {
|
|
72
|
+
if (!persistEnabled())
|
|
73
|
+
return [];
|
|
74
|
+
try {
|
|
75
|
+
const parsed = JSON.parse(sessionStorage.getItem(convoKey()) || "null");
|
|
76
|
+
if (!Array.isArray(parsed))
|
|
77
|
+
return [];
|
|
78
|
+
return parsed.filter((m) => m && (m.role === "user" || m.role === "assistant") && typeof m.content === "string");
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function saveStoredHistory(history) {
|
|
85
|
+
if (!persistEnabled())
|
|
86
|
+
return;
|
|
87
|
+
try {
|
|
88
|
+
sessionStorage.setItem(convoKey(), JSON.stringify(history));
|
|
89
|
+
}
|
|
90
|
+
catch { /* storage off */ }
|
|
91
|
+
}
|
|
92
|
+
function clearStoredHistory() {
|
|
93
|
+
try {
|
|
94
|
+
sessionStorage.removeItem(convoKey());
|
|
95
|
+
}
|
|
96
|
+
catch { /* ignore */ }
|
|
97
|
+
}
|
|
98
|
+
function setPersistOptIn(optedIn) {
|
|
99
|
+
try {
|
|
100
|
+
if (optedIn)
|
|
101
|
+
sessionStorage.setItem(optInKey(), OPT_IN);
|
|
102
|
+
else {
|
|
103
|
+
sessionStorage.removeItem(optInKey());
|
|
104
|
+
clearStoredHistory();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch { /* ignore */ }
|
|
108
|
+
}
|
|
48
109
|
/** POST a prebuilt request body with the current Turnstile token (if any). */
|
|
49
110
|
function postBody(body) {
|
|
50
111
|
return fetch(cfg.endpoint, {
|
|
@@ -69,10 +130,31 @@ function waitForTurnstileToken(timeoutMs) {
|
|
|
69
130
|
tick();
|
|
70
131
|
});
|
|
71
132
|
}
|
|
133
|
+
/** Nearest scrollable ancestor (the rail aside, or the dialog's thread). */
|
|
134
|
+
function scrollParent(el) {
|
|
135
|
+
let p = el.parentElement;
|
|
136
|
+
while (p) {
|
|
137
|
+
const oy = getComputedStyle(p).overflowY;
|
|
138
|
+
if ((oy === "auto" || oy === "scroll") && p.scrollHeight > p.clientHeight)
|
|
139
|
+
return p;
|
|
140
|
+
p = p.parentElement;
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
72
144
|
/** Stream a proxy response into an answer element; returns the answer Markdown. */
|
|
73
145
|
async function streamInto(res, answer) {
|
|
74
146
|
answer.textContent = "";
|
|
75
147
|
answer.dataset.state = "streaming";
|
|
148
|
+
const sc = scrollParent(answer);
|
|
149
|
+
// Keep the newest content in view as it streams — but only if the reader is
|
|
150
|
+
// already at the bottom, so we don't yank them up while they re-read earlier.
|
|
151
|
+
const atBottom = () => !sc || sc.scrollTop + sc.clientHeight >= sc.scrollHeight - 80;
|
|
152
|
+
const render = (html) => {
|
|
153
|
+
const stick = atBottom();
|
|
154
|
+
answer.innerHTML = html;
|
|
155
|
+
if (stick && sc)
|
|
156
|
+
sc.scrollTop = sc.scrollHeight;
|
|
157
|
+
};
|
|
76
158
|
const reader = res.body.getReader();
|
|
77
159
|
const decoder = new TextDecoder();
|
|
78
160
|
let buf = ""; // line buffer (don't parse a frame split across reads)
|
|
@@ -89,13 +171,13 @@ async function streamInto(res, answer) {
|
|
|
89
171
|
if (nl >= 0) {
|
|
90
172
|
answerMd += extractText(buf.slice(0, nl + 1));
|
|
91
173
|
buf = buf.slice(nl + 1);
|
|
92
|
-
|
|
174
|
+
render(renderMarkdown(answerMd));
|
|
93
175
|
}
|
|
94
176
|
}
|
|
95
177
|
if (buf)
|
|
96
178
|
answerMd += extractText(buf);
|
|
97
179
|
const sources = parseSources(rawAll, cfg.linkBase);
|
|
98
|
-
|
|
180
|
+
render(renderMarkdown(answerMd) + (sources.length ? sourcesHtml(sources) : ""));
|
|
99
181
|
answer.dataset.state = "done";
|
|
100
182
|
return answerMd;
|
|
101
183
|
}
|
|
@@ -117,15 +199,55 @@ function appendAssistantTurn(thread) {
|
|
|
117
199
|
thread.appendChild(turn);
|
|
118
200
|
return answer;
|
|
119
201
|
}
|
|
202
|
+
/** Re-render a stored conversation into the thread (no streaming). */
|
|
203
|
+
function restoreThread(thread, history) {
|
|
204
|
+
let last = null;
|
|
205
|
+
for (const m of history) {
|
|
206
|
+
if (m.role === "user") {
|
|
207
|
+
appendUserTurn(thread, m.content);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
const a = appendAssistantTurn(thread);
|
|
211
|
+
a.dataset.state = "done";
|
|
212
|
+
a.innerHTML = renderMarkdown(m.content);
|
|
213
|
+
}
|
|
214
|
+
last = thread.lastElementChild;
|
|
215
|
+
}
|
|
216
|
+
// Land at the bottom of the restored conversation (after a refresh / a
|
|
217
|
+
// same-window source-link navigation), once layout has settled.
|
|
218
|
+
if (last) {
|
|
219
|
+
requestAnimationFrame(() => {
|
|
220
|
+
const sc = scrollParent(last);
|
|
221
|
+
if (sc)
|
|
222
|
+
sc.scrollTop = sc.scrollHeight;
|
|
223
|
+
else
|
|
224
|
+
last.scrollIntoView({ block: "end" });
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
120
228
|
/**
|
|
121
229
|
* Wire one conversation surface (docked panel or floating dialog). Each keeps
|
|
122
230
|
* its own history closure. Shares the stream + Turnstile-retry logic.
|
|
123
231
|
*/
|
|
124
232
|
function wireConversation(els) {
|
|
125
|
-
|
|
233
|
+
// Restore a persisted conversation (refresh / same-window navigation).
|
|
234
|
+
const history = loadStoredHistory();
|
|
235
|
+
if (history.length)
|
|
236
|
+
restoreThread(els.thread, history);
|
|
237
|
+
// Reader opt-IN toggle: persistence is off until the reader checks it. On
|
|
238
|
+
// change, start persisting (saving the current conversation) or stop + clear.
|
|
239
|
+
if (els.remember) {
|
|
240
|
+
els.remember.checked = persistOptedIn();
|
|
241
|
+
els.remember.addEventListener("change", () => {
|
|
242
|
+
setPersistOptIn(els.remember.checked);
|
|
243
|
+
if (els.remember.checked)
|
|
244
|
+
saveStoredHistory(history);
|
|
245
|
+
});
|
|
246
|
+
}
|
|
126
247
|
const reset = () => {
|
|
127
248
|
els.thread.innerHTML = "";
|
|
128
249
|
history.length = 0;
|
|
250
|
+
clearStoredHistory();
|
|
129
251
|
};
|
|
130
252
|
els.newChat?.addEventListener("click", () => {
|
|
131
253
|
reset();
|
|
@@ -176,8 +298,10 @@ function wireConversation(els) {
|
|
|
176
298
|
throw new Error(`Request failed (${res.status})`);
|
|
177
299
|
}
|
|
178
300
|
const answerMd = await streamInto(res, answer);
|
|
179
|
-
if (conversational)
|
|
301
|
+
if (conversational) {
|
|
180
302
|
history.push({ role: "assistant", content: answerMd });
|
|
303
|
+
saveStoredHistory(history);
|
|
304
|
+
}
|
|
181
305
|
}
|
|
182
306
|
catch (err) {
|
|
183
307
|
answer.dataset.state = "error";
|
|
@@ -222,6 +346,7 @@ function wireDockedPanel() {
|
|
|
222
346
|
submit,
|
|
223
347
|
thread,
|
|
224
348
|
newChat: panel.querySelector("[data-dba-newchat]"),
|
|
349
|
+
remember: panel.querySelector("[data-dba-remember]"),
|
|
225
350
|
});
|
|
226
351
|
return true;
|
|
227
352
|
}
|
|
@@ -251,6 +376,9 @@ function mountFloating(hasDocked) {
|
|
|
251
376
|
const newChatMarkup = cfg.conversational
|
|
252
377
|
? `<button type="button" class="dba-newchat" data-dba-newchat>New chat</button>`
|
|
253
378
|
: "";
|
|
379
|
+
const rememberMarkup = cfg.conversational && cfg.persistConversation
|
|
380
|
+
? `<label class="dba-remember"><input type="checkbox" data-dba-remember /> Remember conversation</label>`
|
|
381
|
+
: "";
|
|
254
382
|
dialog.innerHTML = `
|
|
255
383
|
<form class="dba-form" method="dialog" data-dba-form>
|
|
256
384
|
<header class="dba-header">
|
|
@@ -260,12 +388,14 @@ function mountFloating(hasDocked) {
|
|
|
260
388
|
<button type="button" class="dba-close" aria-label="Close">×</button>
|
|
261
389
|
</div>
|
|
262
390
|
</header>
|
|
391
|
+
${rememberMarkup}
|
|
263
392
|
<div class="dba-thread" data-dba-thread></div>
|
|
264
393
|
<div class="dba-inputrow">
|
|
265
394
|
<input class="dba-input" type="text" autocomplete="off" enterkeyhint="search" />
|
|
266
395
|
<button type="submit" class="dba-submit">Ask</button>
|
|
267
396
|
</div>
|
|
268
397
|
${tsMarkup}
|
|
398
|
+
${rememberMarkup}
|
|
269
399
|
</form>
|
|
270
400
|
`;
|
|
271
401
|
// textContent (not innerHTML) for user-configurable strings — no injection.
|
|
@@ -289,6 +419,7 @@ function mountFloating(hasDocked) {
|
|
|
289
419
|
submit,
|
|
290
420
|
thread,
|
|
291
421
|
newChat: dialog.querySelector("[data-dba-newchat]"),
|
|
422
|
+
remember: dialog.querySelector("[data-dba-remember]"),
|
|
292
423
|
});
|
|
293
424
|
root.append(button, dialog);
|
|
294
425
|
document.body.appendChild(root);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
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
|
@@ -61,6 +61,7 @@ export default function ask(input) {
|
|
|
61
61
|
placement: opts.placement,
|
|
62
62
|
conversational: opts.conversational,
|
|
63
63
|
maxTurns: opts.maxTurns,
|
|
64
|
+
persistConversation: opts.persistConversation,
|
|
64
65
|
// Base URL used to turn cited doc paths into links.
|
|
65
66
|
linkBase: ctx.config.site.url ?? "",
|
|
66
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,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,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/schema.d.ts
CHANGED
|
@@ -43,6 +43,14 @@ export interface AskOptions {
|
|
|
43
43
|
* size / cost / latency). Positive integer; default `8`.
|
|
44
44
|
*/
|
|
45
45
|
maxTurns?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Persist the conversation in `sessionStorage` (tab-scoped, cleared when the
|
|
48
|
+
* tab closes) so it survives a page refresh and same-window navigation (e.g.
|
|
49
|
+
* clicking a source link). Default `true`. Readers can still opt out via the
|
|
50
|
+
* widget's "Remember conversation" toggle. Set `false` to disable persistence
|
|
51
|
+
* site-wide. Only applies in `conversational` answer mode.
|
|
52
|
+
*/
|
|
53
|
+
persistConversation?: boolean;
|
|
46
54
|
/** Floating button label. Default "Ask AI". */
|
|
47
55
|
buttonLabel?: string;
|
|
48
56
|
/** Modal heading. Default "Ask the docs". */
|
|
@@ -74,6 +82,7 @@ export interface ResolvedAskOptions {
|
|
|
74
82
|
placement: AskPlacement;
|
|
75
83
|
conversational: boolean;
|
|
76
84
|
maxTurns: number;
|
|
85
|
+
persistConversation: boolean;
|
|
77
86
|
turnstileSitekey: string;
|
|
78
87
|
}
|
|
79
88
|
/**
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC1C,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AACzD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC1C,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AACzD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAiBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAyD/D"}
|
package/dist/schema.js
CHANGED
|
@@ -16,6 +16,7 @@ const DEFAULTS = {
|
|
|
16
16
|
placement: "auto",
|
|
17
17
|
conversational: true,
|
|
18
18
|
maxTurns: 8,
|
|
19
|
+
persistConversation: true,
|
|
19
20
|
turnstileSitekey: "",
|
|
20
21
|
};
|
|
21
22
|
const PKG = "@dogsbay/plugin-ask";
|
|
@@ -67,6 +68,12 @@ export function parseOptions(input) {
|
|
|
67
68
|
}
|
|
68
69
|
out.maxTurns = opts.maxTurns;
|
|
69
70
|
}
|
|
71
|
+
if (opts.persistConversation !== undefined) {
|
|
72
|
+
if (typeof opts.persistConversation !== "boolean") {
|
|
73
|
+
throw new Error(`${PKG}: options.persistConversation must be a boolean.`);
|
|
74
|
+
}
|
|
75
|
+
out.persistConversation = opts.persistConversation;
|
|
76
|
+
}
|
|
70
77
|
if (opts.turnstileSitekey !== undefined) {
|
|
71
78
|
out.turnstileSitekey = requireNonEmptyString(opts.turnstileSitekey, "turnstileSitekey");
|
|
72
79
|
}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dogsbay/plugin-ask",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.90",
|
|
4
4
|
"description": "Floating \"Ask AI\" widget for Dogsbay docs sites — calls a shared AI Search proxy (dogsbay-ask).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"README.md"
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@dogsbay/types": "0.2.0-beta.
|
|
26
|
+
"@dogsbay/types": "0.2.0-beta.90"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"typescript": "^5.7.0",
|
package/src/RightRailAsk.astro
CHANGED
|
@@ -20,6 +20,7 @@ interface RailConfig {
|
|
|
20
20
|
title: string;
|
|
21
21
|
placeholder: string;
|
|
22
22
|
conversational?: boolean;
|
|
23
|
+
persistConversation?: boolean;
|
|
23
24
|
turnstileSitekey?: string;
|
|
24
25
|
}
|
|
25
26
|
const cfg = config as RailConfig;
|
|
@@ -33,6 +34,12 @@ const cfg = config as RailConfig;
|
|
|
33
34
|
<button type="button" class="dba-newchat" data-dba-newchat>New chat</button>
|
|
34
35
|
)}
|
|
35
36
|
</header>
|
|
37
|
+
{cfg.conversational !== false && cfg.persistConversation !== false && (
|
|
38
|
+
<label class="dba-remember">
|
|
39
|
+
<input type="checkbox" data-dba-remember />
|
|
40
|
+
Remember conversation
|
|
41
|
+
</label>
|
|
42
|
+
)}
|
|
36
43
|
<div class="dba-thread" data-dba-thread></div>
|
|
37
44
|
<div class="dba-inputrow">
|
|
38
45
|
<input
|
package/src/client.ts
CHANGED
|
@@ -39,6 +39,7 @@ interface RuntimeConfig {
|
|
|
39
39
|
placement: AskPlacement;
|
|
40
40
|
conversational: boolean;
|
|
41
41
|
maxTurns: number;
|
|
42
|
+
persistConversation: boolean;
|
|
42
43
|
linkBase: string;
|
|
43
44
|
turnstileSitekey: string;
|
|
44
45
|
}
|
|
@@ -73,13 +74,58 @@ function sourcesHtml(sources: Source[]): string {
|
|
|
73
74
|
const items = sources
|
|
74
75
|
.map((s) =>
|
|
75
76
|
s.href
|
|
76
|
-
? `<li><a href="${escapeHtml(s.href)}"
|
|
77
|
+
? `<li><a href="${escapeHtml(s.href)}">${escapeHtml(s.label)}</a></li>`
|
|
77
78
|
: `<li>${escapeHtml(s.label)}</li>`,
|
|
78
79
|
)
|
|
79
80
|
.join("");
|
|
80
81
|
return `<div class="dba-sources"><div class="dba-sources-title">Sources</div><ul>${items}</ul></div>`;
|
|
81
82
|
}
|
|
82
83
|
|
|
84
|
+
// ─── Conversation persistence (sessionStorage; tab-scoped; OPT-IN) ───────────
|
|
85
|
+
// Persisting the reader's own conversation lets it survive a page refresh and
|
|
86
|
+
// same-window navigation (e.g. clicking a source link). It is OFF by default —
|
|
87
|
+
// nothing is stored until the reader opts in via "Remember conversation".
|
|
88
|
+
// Tab-scoped, cleared on tab close, never sent anywhere.
|
|
89
|
+
|
|
90
|
+
const STORE = "dba-ask";
|
|
91
|
+
const OPT_IN = "1";
|
|
92
|
+
const convoKey = () => `${STORE}:convo:${cfg.site}`;
|
|
93
|
+
const optInKey = () => `${STORE}:save:${cfg.site}`;
|
|
94
|
+
|
|
95
|
+
function isPersistMode(): boolean {
|
|
96
|
+
return cfg.conversational && cfg.mode !== "search" && cfg.persistConversation;
|
|
97
|
+
}
|
|
98
|
+
function persistOptedIn(): boolean {
|
|
99
|
+
try { return sessionStorage.getItem(optInKey()) === OPT_IN; } catch { return false; }
|
|
100
|
+
}
|
|
101
|
+
function persistEnabled(): boolean {
|
|
102
|
+
return isPersistMode() && persistOptedIn();
|
|
103
|
+
}
|
|
104
|
+
function loadStoredHistory(): ChatMessage[] {
|
|
105
|
+
if (!persistEnabled()) return [];
|
|
106
|
+
try {
|
|
107
|
+
const parsed = JSON.parse(sessionStorage.getItem(convoKey()) || "null");
|
|
108
|
+
if (!Array.isArray(parsed)) return [];
|
|
109
|
+
return parsed.filter(
|
|
110
|
+
(m): m is ChatMessage =>
|
|
111
|
+
m && (m.role === "user" || m.role === "assistant") && typeof m.content === "string",
|
|
112
|
+
);
|
|
113
|
+
} catch { return []; }
|
|
114
|
+
}
|
|
115
|
+
function saveStoredHistory(history: ChatMessage[]): void {
|
|
116
|
+
if (!persistEnabled()) return;
|
|
117
|
+
try { sessionStorage.setItem(convoKey(), JSON.stringify(history)); } catch { /* storage off */ }
|
|
118
|
+
}
|
|
119
|
+
function clearStoredHistory(): void {
|
|
120
|
+
try { sessionStorage.removeItem(convoKey()); } catch { /* ignore */ }
|
|
121
|
+
}
|
|
122
|
+
function setPersistOptIn(optedIn: boolean): void {
|
|
123
|
+
try {
|
|
124
|
+
if (optedIn) sessionStorage.setItem(optInKey(), OPT_IN);
|
|
125
|
+
else { sessionStorage.removeItem(optInKey()); clearStoredHistory(); }
|
|
126
|
+
} catch { /* ignore */ }
|
|
127
|
+
}
|
|
128
|
+
|
|
83
129
|
/** POST a prebuilt request body with the current Turnstile token (if any). */
|
|
84
130
|
function postBody(body: object): Promise<Response> {
|
|
85
131
|
return fetch(cfg.endpoint, {
|
|
@@ -103,10 +149,32 @@ function waitForTurnstileToken(timeoutMs: number): Promise<string | null> {
|
|
|
103
149
|
});
|
|
104
150
|
}
|
|
105
151
|
|
|
152
|
+
/** Nearest scrollable ancestor (the rail aside, or the dialog's thread). */
|
|
153
|
+
function scrollParent(el: HTMLElement): HTMLElement | null {
|
|
154
|
+
let p = el.parentElement;
|
|
155
|
+
while (p) {
|
|
156
|
+
const oy = getComputedStyle(p).overflowY;
|
|
157
|
+
if ((oy === "auto" || oy === "scroll") && p.scrollHeight > p.clientHeight) return p;
|
|
158
|
+
p = p.parentElement;
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
|
|
106
163
|
/** Stream a proxy response into an answer element; returns the answer Markdown. */
|
|
107
164
|
async function streamInto(res: Response, answer: HTMLDivElement): Promise<string> {
|
|
108
165
|
answer.textContent = "";
|
|
109
166
|
answer.dataset.state = "streaming";
|
|
167
|
+
|
|
168
|
+
const sc = scrollParent(answer);
|
|
169
|
+
// Keep the newest content in view as it streams — but only if the reader is
|
|
170
|
+
// already at the bottom, so we don't yank them up while they re-read earlier.
|
|
171
|
+
const atBottom = () => !sc || sc.scrollTop + sc.clientHeight >= sc.scrollHeight - 80;
|
|
172
|
+
const render = (html: string) => {
|
|
173
|
+
const stick = atBottom();
|
|
174
|
+
answer.innerHTML = html;
|
|
175
|
+
if (stick && sc) sc.scrollTop = sc.scrollHeight;
|
|
176
|
+
};
|
|
177
|
+
|
|
110
178
|
const reader = res.body!.getReader();
|
|
111
179
|
const decoder = new TextDecoder();
|
|
112
180
|
let buf = ""; // line buffer (don't parse a frame split across reads)
|
|
@@ -122,12 +190,12 @@ async function streamInto(res: Response, answer: HTMLDivElement): Promise<string
|
|
|
122
190
|
if (nl >= 0) {
|
|
123
191
|
answerMd += extractText(buf.slice(0, nl + 1));
|
|
124
192
|
buf = buf.slice(nl + 1);
|
|
125
|
-
|
|
193
|
+
render(renderMarkdown(answerMd));
|
|
126
194
|
}
|
|
127
195
|
}
|
|
128
196
|
if (buf) answerMd += extractText(buf);
|
|
129
197
|
const sources = parseSources(rawAll, cfg.linkBase);
|
|
130
|
-
|
|
198
|
+
render(renderMarkdown(answerMd) + (sources.length ? sourcesHtml(sources) : ""));
|
|
131
199
|
answer.dataset.state = "done";
|
|
132
200
|
return answerMd;
|
|
133
201
|
}
|
|
@@ -158,6 +226,31 @@ interface ConvoEls {
|
|
|
158
226
|
submit: HTMLButtonElement;
|
|
159
227
|
thread: HTMLElement;
|
|
160
228
|
newChat?: HTMLButtonElement | null;
|
|
229
|
+
remember?: HTMLInputElement | null;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** Re-render a stored conversation into the thread (no streaming). */
|
|
233
|
+
function restoreThread(thread: HTMLElement, history: ChatMessage[]): void {
|
|
234
|
+
let last: HTMLElement | null = null;
|
|
235
|
+
for (const m of history) {
|
|
236
|
+
if (m.role === "user") {
|
|
237
|
+
appendUserTurn(thread, m.content);
|
|
238
|
+
} else {
|
|
239
|
+
const a = appendAssistantTurn(thread);
|
|
240
|
+
a.dataset.state = "done";
|
|
241
|
+
a.innerHTML = renderMarkdown(m.content);
|
|
242
|
+
}
|
|
243
|
+
last = thread.lastElementChild as HTMLElement | null;
|
|
244
|
+
}
|
|
245
|
+
// Land at the bottom of the restored conversation (after a refresh / a
|
|
246
|
+
// same-window source-link navigation), once layout has settled.
|
|
247
|
+
if (last) {
|
|
248
|
+
requestAnimationFrame(() => {
|
|
249
|
+
const sc = scrollParent(last!);
|
|
250
|
+
if (sc) sc.scrollTop = sc.scrollHeight;
|
|
251
|
+
else last!.scrollIntoView({ block: "end" });
|
|
252
|
+
});
|
|
253
|
+
}
|
|
161
254
|
}
|
|
162
255
|
|
|
163
256
|
/**
|
|
@@ -165,11 +258,24 @@ interface ConvoEls {
|
|
|
165
258
|
* its own history closure. Shares the stream + Turnstile-retry logic.
|
|
166
259
|
*/
|
|
167
260
|
function wireConversation(els: ConvoEls): void {
|
|
168
|
-
|
|
261
|
+
// Restore a persisted conversation (refresh / same-window navigation).
|
|
262
|
+
const history: ChatMessage[] = loadStoredHistory();
|
|
263
|
+
if (history.length) restoreThread(els.thread, history);
|
|
264
|
+
|
|
265
|
+
// Reader opt-IN toggle: persistence is off until the reader checks it. On
|
|
266
|
+
// change, start persisting (saving the current conversation) or stop + clear.
|
|
267
|
+
if (els.remember) {
|
|
268
|
+
els.remember.checked = persistOptedIn();
|
|
269
|
+
els.remember.addEventListener("change", () => {
|
|
270
|
+
setPersistOptIn(els.remember!.checked);
|
|
271
|
+
if (els.remember!.checked) saveStoredHistory(history);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
169
274
|
|
|
170
275
|
const reset = () => {
|
|
171
276
|
els.thread.innerHTML = "";
|
|
172
277
|
history.length = 0;
|
|
278
|
+
clearStoredHistory();
|
|
173
279
|
};
|
|
174
280
|
els.newChat?.addEventListener("click", () => {
|
|
175
281
|
reset();
|
|
@@ -220,7 +326,10 @@ function wireConversation(els: ConvoEls): void {
|
|
|
220
326
|
throw new Error(`Request failed (${res.status})`);
|
|
221
327
|
}
|
|
222
328
|
const answerMd = await streamInto(res, answer);
|
|
223
|
-
if (conversational)
|
|
329
|
+
if (conversational) {
|
|
330
|
+
history.push({ role: "assistant", content: answerMd });
|
|
331
|
+
saveStoredHistory(history);
|
|
332
|
+
}
|
|
224
333
|
} catch (err) {
|
|
225
334
|
answer.dataset.state = "error";
|
|
226
335
|
answer.textContent = `Sorry — something went wrong. ${(err as Error).message}`;
|
|
@@ -263,6 +372,7 @@ function wireDockedPanel(): boolean {
|
|
|
263
372
|
submit,
|
|
264
373
|
thread,
|
|
265
374
|
newChat: panel.querySelector<HTMLButtonElement>("[data-dba-newchat]"),
|
|
375
|
+
remember: panel.querySelector<HTMLInputElement>("[data-dba-remember]"),
|
|
266
376
|
});
|
|
267
377
|
return true;
|
|
268
378
|
}
|
|
@@ -294,6 +404,9 @@ function mountFloating(hasDocked: boolean): void {
|
|
|
294
404
|
const newChatMarkup = cfg.conversational
|
|
295
405
|
? `<button type="button" class="dba-newchat" data-dba-newchat>New chat</button>`
|
|
296
406
|
: "";
|
|
407
|
+
const rememberMarkup = cfg.conversational && cfg.persistConversation
|
|
408
|
+
? `<label class="dba-remember"><input type="checkbox" data-dba-remember /> Remember conversation</label>`
|
|
409
|
+
: "";
|
|
297
410
|
dialog.innerHTML = `
|
|
298
411
|
<form class="dba-form" method="dialog" data-dba-form>
|
|
299
412
|
<header class="dba-header">
|
|
@@ -303,12 +416,14 @@ function mountFloating(hasDocked: boolean): void {
|
|
|
303
416
|
<button type="button" class="dba-close" aria-label="Close">×</button>
|
|
304
417
|
</div>
|
|
305
418
|
</header>
|
|
419
|
+
${rememberMarkup}
|
|
306
420
|
<div class="dba-thread" data-dba-thread></div>
|
|
307
421
|
<div class="dba-inputrow">
|
|
308
422
|
<input class="dba-input" type="text" autocomplete="off" enterkeyhint="search" />
|
|
309
423
|
<button type="submit" class="dba-submit">Ask</button>
|
|
310
424
|
</div>
|
|
311
425
|
${tsMarkup}
|
|
426
|
+
${rememberMarkup}
|
|
312
427
|
</form>
|
|
313
428
|
`;
|
|
314
429
|
|
|
@@ -335,6 +450,7 @@ function mountFloating(hasDocked: boolean): void {
|
|
|
335
450
|
submit,
|
|
336
451
|
thread,
|
|
337
452
|
newChat: dialog.querySelector<HTMLButtonElement>("[data-dba-newchat]"),
|
|
453
|
+
remember: dialog.querySelector<HTMLInputElement>("[data-dba-remember]"),
|
|
338
454
|
});
|
|
339
455
|
|
|
340
456
|
root.append(button, dialog);
|
package/src/styles.css
CHANGED
|
@@ -66,6 +66,17 @@
|
|
|
66
66
|
/* In the modal, bound the thread so it scrolls and the input stays visible. */
|
|
67
67
|
.dba-dialog .dba-thread { max-height: 55vh; overflow-y: auto; }
|
|
68
68
|
|
|
69
|
+
/* Reader opt-out for conversation persistence. */
|
|
70
|
+
.dba-remember {
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
gap: 0.4rem;
|
|
74
|
+
font-size: 0.78rem;
|
|
75
|
+
opacity: 0.75;
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
}
|
|
78
|
+
.dba-remember input { cursor: pointer; }
|
|
79
|
+
|
|
69
80
|
.dba-trigger {
|
|
70
81
|
position: fixed;
|
|
71
82
|
bottom: 1.25rem;
|