structural-codes-viewer 0.1.0-alpha.2 → 0.1.0-alpha.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.
- package/README.md +34 -101
- package/package-dist/styles.css +7 -172
- package/package.json +4 -46
- package/package-dist/chatntc/canonicalization.d.ts +0 -15
- package/package-dist/chatntc/canonicalization.js +0 -107
- package/package-dist/chatntc/canonicalization.js.map +0 -1
- package/package-dist/chatntc/directives.d.ts +0 -2
- package/package-dist/chatntc/directives.js +0 -38
- package/package-dist/chatntc/directives.js.map +0 -1
- package/package-dist/chatntc/evidence.d.ts +0 -17
- package/package-dist/chatntc/evidence.js +0 -116
- package/package-dist/chatntc/evidence.js.map +0 -1
- package/package-dist/chatntc/index.d.ts +0 -10
- package/package-dist/chatntc/index.js +0 -9
- package/package-dist/chatntc/index.js.map +0 -1
- package/package-dist/chatntc/issueCategories.d.ts +0 -2
- package/package-dist/chatntc/issueCategories.js +0 -11
- package/package-dist/chatntc/issueCategories.js.map +0 -1
- package/package-dist/chatntc/policy.d.ts +0 -35
- package/package-dist/chatntc/policy.js +0 -36
- package/package-dist/chatntc/policy.js.map +0 -1
- package/package-dist/chatntc/provider.d.ts +0 -42
- package/package-dist/chatntc/provider.js +0 -2
- package/package-dist/chatntc/provider.js.map +0 -1
- package/package-dist/chatntc/responseContract.d.ts +0 -52
- package/package-dist/chatntc/responseContract.js +0 -73
- package/package-dist/chatntc/responseContract.js.map +0 -1
- package/package-dist/chatntc/retrieval.d.ts +0 -5
- package/package-dist/chatntc/retrieval.js +0 -220
- package/package-dist/chatntc/retrieval.js.map +0 -1
- package/package-dist/chatntc/types.d.ts +0 -240
- package/package-dist/chatntc/types.js +0 -2
- package/package-dist/chatntc/types.js.map +0 -1
- package/package-dist/chatntc/validation.d.ts +0 -8
- package/package-dist/chatntc/validation.js +0 -299
- package/package-dist/chatntc/validation.js.map +0 -1
- package/package-dist/chatntc/viewerArtifacts.d.ts +0 -14
- package/package-dist/chatntc/viewerArtifacts.js +0 -168
- package/package-dist/chatntc/viewerArtifacts.js.map +0 -1
- package/package-dist/chatntc-history/index.d.ts +0 -2
- package/package-dist/chatntc-history/index.js +0 -3
- package/package-dist/chatntc-history/index.js.map +0 -1
- package/package-dist/chatntc-history/indexedDb.d.ts +0 -27
- package/package-dist/chatntc-history/indexedDb.js +0 -258
- package/package-dist/chatntc-history/indexedDb.js.map +0 -1
- package/package-dist/chatntc-history/schema.d.ts +0 -5
- package/package-dist/chatntc-history/schema.js +0 -102
- package/package-dist/chatntc-history/schema.js.map +0 -1
- package/package-dist/chatntc-history/types.d.ts +0 -78
- package/package-dist/chatntc-history/types.js +0 -23
- package/package-dist/chatntc-history/types.js.map +0 -1
- package/package-dist/chatntc-ui/ChatNTCHistoryPanel.d.ts +0 -9
- package/package-dist/chatntc-ui/ChatNTCHistoryPanel.js +0 -239
- package/package-dist/chatntc-ui/ChatNTCHistoryPanel.js.map +0 -1
- package/package-dist/chatntc-ui/ChatNTCIcons.d.ts +0 -10
- package/package-dist/chatntc-ui/ChatNTCIcons.js +0 -20
- package/package-dist/chatntc-ui/ChatNTCIcons.js.map +0 -1
- package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.d.ts +0 -1
- package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.js +0 -5
- package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.js.map +0 -1
- package/package-dist/chatntc-ui/ChatNTCMarkdown.d.ts +0 -14
- package/package-dist/chatntc-ui/ChatNTCMarkdown.js +0 -112
- package/package-dist/chatntc-ui/ChatNTCMarkdown.js.map +0 -1
- package/package-dist/chatntc-ui/ChatNTCPanel.d.ts +0 -29
- package/package-dist/chatntc-ui/ChatNTCPanel.js +0 -241
- package/package-dist/chatntc-ui/ChatNTCPanel.js.map +0 -1
- package/package-dist/chatntc-ui/historyMessages.d.ts +0 -5
- package/package-dist/chatntc-ui/historyMessages.js +0 -53
- package/package-dist/chatntc-ui/historyMessages.js.map +0 -1
- package/package-dist/chatntc-ui/index.d.ts +0 -3
- package/package-dist/chatntc-ui/index.js +0 -4
- package/package-dist/chatntc-ui/index.js.map +0 -1
- package/package-dist/chatntc-ui/transport.d.ts +0 -51
- package/package-dist/chatntc-ui/transport.js +0 -9
- package/package-dist/chatntc-ui/transport.js.map +0 -1
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
|
-
import { useEffect, useId, useRef, useState } from "react";
|
|
15
|
-
import { ChatHistoryError, titleFromQuestion } from "../chatntc-history/types.js";
|
|
16
|
-
import { ChatNTCPanel } from "./ChatNTCPanel.js";
|
|
17
|
-
import { historyMessages, turnsFromHistory } from "./historyMessages.js";
|
|
18
|
-
import { HistoryIcon, NewChatIcon, SettingsIcon, TrashIcon } from "./ChatNTCIcons.js";
|
|
19
|
-
const errorMessage = (error) => error instanceof ChatHistoryError ? error.message : "La cronologia non è disponibile. I dati non sono stati cancellati.";
|
|
20
|
-
/** This component knows only ChatHistoryStore. No IndexedDB, provider, HTTP or key configuration. */
|
|
21
|
-
export function ChatNTCHistoryPanel(_a) {
|
|
22
|
-
var _b, _c;
|
|
23
|
-
var { historyStore: store, settings } = _a, panelProps = __rest(_a, ["historyStore", "settings"]);
|
|
24
|
-
const [rows, setRows] = useState([]);
|
|
25
|
-
const [session, setSession] = useState(null);
|
|
26
|
-
const [error, setError] = useState("");
|
|
27
|
-
const [loading, setLoading] = useState(true);
|
|
28
|
-
const [saving, setSaving] = useState(false);
|
|
29
|
-
const [generating, setGenerating] = useState(false);
|
|
30
|
-
const [expanded, setExpanded] = useState(null);
|
|
31
|
-
const [rename, setRename] = useState(null);
|
|
32
|
-
const [activeTitle, setActiveTitle] = useState("Nuova chat");
|
|
33
|
-
const [activeId, setActiveId] = useState(null);
|
|
34
|
-
const [saveFailed, setSaveFailed] = useState(false);
|
|
35
|
-
const [hasSnapshot, setHasSnapshot] = useState(false);
|
|
36
|
-
const [conflict, setConflict] = useState(false);
|
|
37
|
-
const historyId = useId();
|
|
38
|
-
const settingsId = useId();
|
|
39
|
-
const current = useRef(null);
|
|
40
|
-
const latest = useRef(null);
|
|
41
|
-
const queue = useRef(Promise.resolve());
|
|
42
|
-
const failed = useRef(false);
|
|
43
|
-
const writes = useRef(0);
|
|
44
|
-
const mounted = useRef(false);
|
|
45
|
-
const sequence = useRef(0);
|
|
46
|
-
const historyButton = useRef(null);
|
|
47
|
-
const settingsButton = useRef(null);
|
|
48
|
-
const renameButton = useRef(null);
|
|
49
|
-
const renaming = useRef(false);
|
|
50
|
-
const renameCancelled = useRef(false);
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
mounted.current = true;
|
|
53
|
-
let cancelled = false;
|
|
54
|
-
void (async () => {
|
|
55
|
-
var _a, _b;
|
|
56
|
-
try {
|
|
57
|
-
const list = await store.listConversations();
|
|
58
|
-
const id = await store.getActiveConversationId();
|
|
59
|
-
const conversation = id ? await store.getConversation(id) : null;
|
|
60
|
-
if (id && !conversation)
|
|
61
|
-
throw new ChatHistoryError("CONFLICT");
|
|
62
|
-
if (cancelled)
|
|
63
|
-
return;
|
|
64
|
-
current.current = conversation;
|
|
65
|
-
setActiveId((_a = conversation === null || conversation === void 0 ? void 0 : conversation.id) !== null && _a !== void 0 ? _a : null);
|
|
66
|
-
setRows(list);
|
|
67
|
-
setSession({ key: ++sequence.current, conversation });
|
|
68
|
-
setActiveTitle((_b = conversation === null || conversation === void 0 ? void 0 : conversation.title) !== null && _b !== void 0 ? _b : "Nuova chat");
|
|
69
|
-
}
|
|
70
|
-
catch (reason) {
|
|
71
|
-
if (!cancelled) {
|
|
72
|
-
failed.current = true;
|
|
73
|
-
setSaveFailed(true);
|
|
74
|
-
setError(errorMessage(reason));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
finally {
|
|
78
|
-
if (!cancelled)
|
|
79
|
-
setLoading(false);
|
|
80
|
-
}
|
|
81
|
-
})();
|
|
82
|
-
return () => { cancelled = true; mounted.current = false; };
|
|
83
|
-
}, [store]);
|
|
84
|
-
// Browser unload confirmation only while a save is outstanding or failed; no telemetry.
|
|
85
|
-
useEffect(() => {
|
|
86
|
-
if (!saving && !(saveFailed && hasSnapshot))
|
|
87
|
-
return;
|
|
88
|
-
const warn = (event) => { event.preventDefault(); event.returnValue = ""; };
|
|
89
|
-
window.addEventListener("beforeunload", warn);
|
|
90
|
-
return () => window.removeEventListener("beforeunload", warn);
|
|
91
|
-
}, [saving, saveFailed, hasSnapshot]);
|
|
92
|
-
function save(turns) {
|
|
93
|
-
latest.current = structuredClone(turns);
|
|
94
|
-
setHasSnapshot(true);
|
|
95
|
-
const messages = historyMessages(turns);
|
|
96
|
-
writes.current++;
|
|
97
|
-
setSaving(true);
|
|
98
|
-
setGenerating(turns.some((turn) => turn.status === "pending"));
|
|
99
|
-
queue.current = queue.current.then(async () => {
|
|
100
|
-
var _a, _b;
|
|
101
|
-
if (failed.current)
|
|
102
|
-
return;
|
|
103
|
-
try {
|
|
104
|
-
const previous = current.current;
|
|
105
|
-
const title = (previous === null || previous === void 0 ? void 0 : previous.messages.length) ? previous.title : titleFromQuestion((_b = (_a = turns[0]) === null || _a === void 0 ? void 0 : _a.question) !== null && _b !== void 0 ? _b : "");
|
|
106
|
-
const saved = previous
|
|
107
|
-
? await store.updateConversation(previous.id, { title, messages }, previous.revision)
|
|
108
|
-
: await store.createConversation({ title, messages });
|
|
109
|
-
current.current = saved;
|
|
110
|
-
await store.setActiveConversationId(saved.id);
|
|
111
|
-
const list = await store.listConversations();
|
|
112
|
-
if (mounted.current) {
|
|
113
|
-
setRows(list);
|
|
114
|
-
setActiveTitle(saved.title);
|
|
115
|
-
setActiveId(saved.id);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (reason) {
|
|
119
|
-
failed.current = true;
|
|
120
|
-
if (mounted.current) {
|
|
121
|
-
setSaveFailed(true);
|
|
122
|
-
setConflict(reason instanceof ChatHistoryError && reason.code === "CONFLICT");
|
|
123
|
-
setError(errorMessage(reason));
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}).finally(() => { writes.current--; if (mounted.current)
|
|
127
|
-
setSaving(writes.current > 0); });
|
|
128
|
-
}
|
|
129
|
-
async function act(operation) {
|
|
130
|
-
setLoading(true);
|
|
131
|
-
await queue.current;
|
|
132
|
-
if (failed.current) {
|
|
133
|
-
setLoading(false);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
try {
|
|
137
|
-
await operation();
|
|
138
|
-
}
|
|
139
|
-
catch (reason) {
|
|
140
|
-
setError(errorMessage(reason));
|
|
141
|
-
}
|
|
142
|
-
finally {
|
|
143
|
-
setLoading(false);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
function select(conversation) {
|
|
147
|
-
var _a, _b;
|
|
148
|
-
current.current = conversation;
|
|
149
|
-
latest.current = null;
|
|
150
|
-
setActiveId((_a = conversation === null || conversation === void 0 ? void 0 : conversation.id) !== null && _a !== void 0 ? _a : null);
|
|
151
|
-
setHasSnapshot(false);
|
|
152
|
-
setSession({ key: ++sequence.current, conversation });
|
|
153
|
-
setActiveTitle((_b = conversation === null || conversation === void 0 ? void 0 : conversation.title) !== null && _b !== void 0 ? _b : "Nuova chat");
|
|
154
|
-
setGenerating(false);
|
|
155
|
-
setExpanded(null);
|
|
156
|
-
setRename(null);
|
|
157
|
-
setError("");
|
|
158
|
-
}
|
|
159
|
-
function closeAccordion(kind) {
|
|
160
|
-
setExpanded(null);
|
|
161
|
-
window.requestAnimationFrame(() => { var _a; return (_a = (kind === "history" ? historyButton : settingsButton).current) === null || _a === void 0 ? void 0 : _a.focus(); });
|
|
162
|
-
}
|
|
163
|
-
function cancelRename() {
|
|
164
|
-
renameCancelled.current = true;
|
|
165
|
-
setRename(null);
|
|
166
|
-
window.requestAnimationFrame(() => { var _a; return (_a = renameButton.current) === null || _a === void 0 ? void 0 : _a.focus(); });
|
|
167
|
-
}
|
|
168
|
-
async function commitRename() {
|
|
169
|
-
var _a;
|
|
170
|
-
if (renameCancelled.current) {
|
|
171
|
-
renameCancelled.current = false;
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
if (renaming.current)
|
|
175
|
-
return;
|
|
176
|
-
const title = (_a = rename === null || rename === void 0 ? void 0 : rename.trim()) !== null && _a !== void 0 ? _a : "";
|
|
177
|
-
const previous = current.current;
|
|
178
|
-
if (!previous || !title) {
|
|
179
|
-
cancelRename();
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
if (title === activeTitle) {
|
|
183
|
-
cancelRename();
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
renaming.current = true;
|
|
187
|
-
await act(async () => {
|
|
188
|
-
const updated = await store.updateConversation(previous.id, { title }, previous.revision);
|
|
189
|
-
current.current = updated;
|
|
190
|
-
setActiveTitle(updated.title);
|
|
191
|
-
setRows(await store.listConversations());
|
|
192
|
-
setRename(null);
|
|
193
|
-
});
|
|
194
|
-
renaming.current = false;
|
|
195
|
-
window.requestAnimationFrame(() => { var _a; return (_a = renameButton.current) === null || _a === void 0 ? void 0 : _a.focus(); });
|
|
196
|
-
}
|
|
197
|
-
const locked = loading || saving || saveFailed;
|
|
198
|
-
const historyOpen = expanded === "history";
|
|
199
|
-
const settingsOpen = expanded === "settings";
|
|
200
|
-
const visibleStatus = loading ? "Apertura…" : saving ? "Salvataggio…" : error ? "Cronologia da verificare" : "";
|
|
201
|
-
return _jsxs("div", { className: "scv-chat-history-shell", "data-history-state": loading ? "loading" : saving ? "saving" : error ? "error" : "idle", children: [_jsxs("div", { className: "scv-chat-history-actions", children: [_jsxs("button", { className: "scv-chat-strip-button", type: "button", disabled: locked || generating, onClick: () => void act(async () => { await store.setActiveConversationId(null); select(null); }), children: [_jsx(NewChatIcon, {}), "Nuova chat"] }), _jsxs("button", { ref: historyButton, className: "scv-chat-strip-button", type: "button", "aria-controls": historyId, "aria-expanded": historyOpen, onClick: () => {
|
|
202
|
-
setExpanded(historyOpen ? null : "history");
|
|
203
|
-
if (!historyOpen)
|
|
204
|
-
void store.listConversations().then(setRows).catch((reason) => setError(errorMessage(reason)));
|
|
205
|
-
}, children: [_jsx(HistoryIcon, {}), "Cronologia chat"] }), settings && _jsxs("button", { ref: settingsButton, className: "scv-chat-strip-button", type: "button", "aria-controls": settingsId, "aria-expanded": settingsOpen, onClick: () => setExpanded(settingsOpen ? null : "settings"), children: [_jsx(SettingsIcon, {}), "Impostazioni AI"] }), visibleStatus && _jsx("span", { role: "status", children: visibleStatus })] }), error && _jsxs("div", { className: "scv-chat-history-error", role: "alert", children: [_jsx("p", { children: error }), hasSnapshot && saveFailed && _jsxs(_Fragment, { children: [_jsx("p", { children: "Le modifiche restano visibili in questa pagina. Non chiuderla finch\u00E9 non sono salvate." }), _jsx("button", { type: "button", disabled: saving, onClick: () => { failed.current = false; setSaveFailed(false); setError(""); save(latest.current); }, children: "Riprova salvataggio" }), conflict && _jsx("button", { type: "button", disabled: saving || generating, onClick: () => { current.current = null; failed.current = false; setSaveFailed(false); setConflict(false); setError(""); save(latest.current); }, children: "Salva come nuova conversazione" })] }), !session && _jsx("button", { type: "button", onClick: () => window.location.reload(), children: "Riprova apertura" })] }), _jsx("div", { id: historyId, className: "scv-chat-history-accordion", "data-expanded": historyOpen, "aria-hidden": !historyOpen, inert: !historyOpen, onKeyDown: (event) => {
|
|
206
|
-
if (event.key === "Escape") {
|
|
207
|
-
event.preventDefault();
|
|
208
|
-
closeAccordion("history");
|
|
209
|
-
}
|
|
210
|
-
}, children: _jsx("section", { className: "scv-chat-history-list", "aria-label": "Cronologia conversazioni", children: rows.length === 0 ? _jsx("p", { children: "Nessuna conversazione salvata." }) : _jsx("ul", { children: rows.map((row) => _jsxs("li", { children: [_jsxs("button", { type: "button", disabled: locked || generating, "aria-current": activeId === row.id ? "true" : undefined, onClick: () => void act(async () => {
|
|
211
|
-
const conversation = await store.getConversation(row.id);
|
|
212
|
-
if (!conversation)
|
|
213
|
-
throw new ChatHistoryError("CONFLICT");
|
|
214
|
-
await store.setActiveConversationId(row.id);
|
|
215
|
-
select(conversation);
|
|
216
|
-
}), children: [_jsx("span", { children: row.title }), _jsx("time", { dateTime: row.updatedAt, children: new Date(row.updatedAt).toLocaleDateString("it-IT") })] }), _jsx("button", { className: "scv-chat-history-delete", type: "button", "aria-label": `Elimina ${row.title}`, title: `Elimina ${row.title}`, disabled: locked || generating, onClick: () => void act(async () => {
|
|
217
|
-
var _a;
|
|
218
|
-
await store.deleteConversation(row.id, row.revision);
|
|
219
|
-
if (((_a = current.current) === null || _a === void 0 ? void 0 : _a.id) === row.id)
|
|
220
|
-
select(null);
|
|
221
|
-
setRows(await store.listConversations());
|
|
222
|
-
}), children: _jsx(TrashIcon, {}) })] }, row.id)) }) }) }), settings && _jsx("div", { id: settingsId, className: "scv-chat-settings-accordion", "data-expanded": settingsOpen, "aria-hidden": !settingsOpen, inert: !settingsOpen, onKeyDown: (event) => {
|
|
223
|
-
if (event.key === "Escape") {
|
|
224
|
-
event.preventDefault();
|
|
225
|
-
closeAccordion("settings");
|
|
226
|
-
}
|
|
227
|
-
}, children: _jsx("section", { className: "scv-chat-settings-content", "aria-label": "Impostazioni AI", children: settings }) }), session && _jsxs(_Fragment, { children: [_jsx("div", { className: "scv-chat-history-title", children: rename !== null ? _jsx("form", { onSubmit: (event) => { event.preventDefault(); void commitRename(); }, children: _jsx("input", { "aria-label": "Titolo conversazione", maxLength: 144, value: rename, onChange: (event) => setRename(event.target.value), onBlur: () => void commitRename(), onKeyDown: (event) => {
|
|
228
|
-
if (event.key === "Enter") {
|
|
229
|
-
event.preventDefault();
|
|
230
|
-
void commitRename();
|
|
231
|
-
}
|
|
232
|
-
else if (event.key === "Escape") {
|
|
233
|
-
event.preventDefault();
|
|
234
|
-
cancelRename();
|
|
235
|
-
}
|
|
236
|
-
}, autoFocus: true }) })
|
|
237
|
-
: _jsxs(_Fragment, { children: [_jsx("strong", { children: activeTitle }), _jsx("button", { ref: renameButton, className: "scv-chat-rename-button", type: "button", "aria-label": "Rinomina conversazione", title: "Rinomina conversazione", disabled: locked || generating || !activeId, onClick: () => { renameCancelled.current = false; setRename(activeTitle); }, children: _jsxs("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("path", { d: "m4 16-.8 4 4-.8L18.4 8 16 5.6 4 16Z" }), _jsx("path", { d: "m14.8 6.8 2.4 2.4" })] }) })] }) }), _jsx("div", { className: "scv-chat-history-content", children: _jsx(ChatNTCPanel, Object.assign({}, panelProps, { initialTurns: turnsFromHistory((_c = (_b = session.conversation) === null || _b === void 0 ? void 0 : _b.messages) !== null && _c !== void 0 ? _c : []), historyEnabled: true, showNewChatAction: false, disabled: locked, onTurnsChange: save, onNewChat: () => void act(async () => { await store.setActiveConversationId(null); select(null); }) }), session.key) })] })] });
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=ChatNTCHistoryPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatNTCHistoryPanel.js","sourceRoot":"","sources":["../../shared/chatntc-ui/ChatNTCHistoryPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
interface IconProps {
|
|
2
|
-
className?: string;
|
|
3
|
-
}
|
|
4
|
-
export declare function NewChatIcon({ className }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
export declare function HistoryIcon({ className }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export declare function SettingsIcon({ className }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export declare function TrashIcon({ className }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export declare function ApplySettingsIcon({ className }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export declare function CloseIcon({ className }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export function NewChatIcon({ className = "scv-chat-control-icon" }) {
|
|
3
|
-
return _jsxs("svg", { className: className, viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("path", { d: "M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" }), _jsx("path", { d: "M14 3v5h5M13 17.5l5.2-5.2 2 2-5.2 5.2-3 .7.8-2.7Z" })] });
|
|
4
|
-
}
|
|
5
|
-
export function HistoryIcon({ className = "scv-chat-control-icon" }) {
|
|
6
|
-
return _jsxs("svg", { className: className, viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("path", { d: "M3 12a9 9 0 1 0 3-6.7" }), _jsx("path", { d: "M3 3v6h6M12 7v5l3 2" })] });
|
|
7
|
-
}
|
|
8
|
-
export function SettingsIcon({ className = "scv-chat-control-icon" }) {
|
|
9
|
-
return _jsxs("svg", { className: className, viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("path", { d: "M10 2h4l.6 2.6c.6.2 1.2.5 1.7 1l2.5-.8 2 3.4-1.9 1.8c.1.7.1 1.3 0 2l1.9 1.8-2 3.4-2.5-.8c-.5.4-1.1.8-1.7 1L14 21h-4l-.6-2.6c-.6-.2-1.2-.6-1.7-1l-2.5.8-2-3.4L5.1 13c-.1-.7-.1-1.3 0-2L3.2 9.2l2-3.4 2.5.8c.5-.5 1.1-.8 1.7-1L10 2Z" }), _jsx("circle", { cx: "12", cy: "11.5", r: "2.7" })] });
|
|
10
|
-
}
|
|
11
|
-
export function TrashIcon({ className = "scv-chat-delete-icon" }) {
|
|
12
|
-
return _jsx("svg", { className: className, viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "M4 7h16M9 7V4h6v3M7 7l1 13h8l1-13M10 11v5M14 11v5" }) });
|
|
13
|
-
}
|
|
14
|
-
export function ApplySettingsIcon({ className = "scv-ai-action-icon" }) {
|
|
15
|
-
return _jsxs("svg", { className: className, viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("circle", { cx: "12", cy: "12", r: "8.5" }), _jsx("path", { d: "m8.2 12.2 2.4 2.4 5.4-5.4" })] });
|
|
16
|
-
}
|
|
17
|
-
export function CloseIcon({ className = "scv-tools-close-icon" }) {
|
|
18
|
-
return _jsx("svg", { className: className, viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "m6 6 12 12M18 6 6 18" }) });
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=ChatNTCIcons.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatNTCIcons.js","sourceRoot":"","sources":["../../shared/chatntc-ui/ChatNTCIcons.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,GAAG,uBAAuB,EAAa;IAC5E,OAAO,eAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,iBAAa,MAAM,aACtE,eAAM,CAAC,EAAC,0CAA0C,GAAG,EACrD,eAAM,CAAC,EAAC,mDAAmD,GAAG,IAC1D,CAAC;AACT,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,GAAG,uBAAuB,EAAa;IAC5E,OAAO,eAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,iBAAa,MAAM,aACtE,eAAM,CAAC,EAAC,uBAAuB,GAAG,EAClC,eAAM,CAAC,EAAC,qBAAqB,GAAG,IAC5B,CAAC;AACT,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,GAAG,uBAAuB,EAAa;IAC7E,OAAO,eAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,iBAAa,MAAM,aACtE,eAAM,CAAC,EAAC,oOAAoO,GAAG,EAC/O,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,GAAG,IAChC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,SAAS,GAAG,sBAAsB,EAAa;IACzE,OAAO,cAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,iBAAa,MAAM,YACtE,eAAM,CAAC,EAAC,mDAAmD,GAAG,GAC1D,CAAC;AACT,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,GAAG,oBAAoB,EAAa;IAC/E,OAAO,eAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,iBAAa,MAAM,aACtE,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,GAAG,EAClC,eAAM,CAAC,EAAC,2BAA2B,GAAG,IAClC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,SAAS,GAAG,sBAAsB,EAAa;IACzE,OAAO,cAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,iBAAa,MAAM,YAAC,eAAM,CAAC,EAAC,sBAAsB,GAAG,GAAM,CAAC;AACnH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function ChatNTCLoadingSkeleton(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export function ChatNTCLoadingSkeleton() {
|
|
3
|
-
return _jsxs("div", { className: "scv-chat-loading", role: "status", "aria-live": "polite", children: [_jsx("span", { className: "scv-chat-loading-label", children: "Sto consultando la normativa\u2026" }), _jsxs("span", { className: "scv-chat-loading-lines", "aria-hidden": "true", children: [_jsx("i", {}), _jsx("i", {}), _jsx("i", {}), _jsx("i", {})] })] });
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=ChatNTCLoadingSkeleton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatNTCLoadingSkeleton.js","sourceRoot":"","sources":["../../shared/chatntc-ui/ChatNTCLoadingSkeleton.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,sBAAsB;IACpC,OAAO,eAAK,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,aACvE,eAAM,SAAS,EAAC,wBAAwB,mDAAqC,EAC7E,gBAAM,SAAS,EAAC,wBAAwB,iBAAa,MAAM,aACzD,aAAK,EAAA,aAAK,EAAA,aAAK,EAAA,aAAK,IACf,IACH,CAAC;AACT,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ChatNTCReference } from "../chatntc/types.js";
|
|
2
|
-
import type { ViewerTarget } from "../permalinks.js";
|
|
3
|
-
export interface ChatNTCMarkdownProps {
|
|
4
|
-
markdown: string;
|
|
5
|
-
references?: readonly ChatNTCReference[];
|
|
6
|
-
hrefForTarget?: (target: ViewerTarget) => string;
|
|
7
|
-
onNavigate?: (target: ViewerTarget) => void | Promise<void>;
|
|
8
|
-
onNavigationError?: () => void;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Controlled Markdown surface for model output.
|
|
12
|
-
* Raw HTML is deliberately skipped; URLs retain react-markdown's safe transform.
|
|
13
|
-
*/
|
|
14
|
-
export declare function ChatNTCMarkdown({ markdown, references, hrefForTarget, onNavigate, onNavigationError }: ChatNTCMarkdownProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import ReactMarkdown from "react-markdown";
|
|
14
|
-
import rehypeKatex from "rehype-katex";
|
|
15
|
-
import remarkGfm from "remark-gfm";
|
|
16
|
-
import remarkMath from "remark-math";
|
|
17
|
-
import { findCrossReferences } from "../crossReferences.js";
|
|
18
|
-
import { viewerTargetForCitation } from "../chatntc/evidence.js";
|
|
19
|
-
const skippedNodeTypes = new Set(["code", "inlineCode", "inlineMath", "link", "linkReference", "math"]);
|
|
20
|
-
const normalizedNumber = (value) => value.replace(/^C\.?/iu, "").replace(/[.\s]+$/gu, "").toUpperCase();
|
|
21
|
-
function referenceKind(reference) {
|
|
22
|
-
var _a, _b, _c;
|
|
23
|
-
if ("kind" in reference)
|
|
24
|
-
return reference.kind;
|
|
25
|
-
if ((_a = reference.assetId) === null || _a === void 0 ? void 0 : _a.includes(":formula:"))
|
|
26
|
-
return "formula";
|
|
27
|
-
if ((_b = reference.assetId) === null || _b === void 0 ? void 0 : _b.includes(":table:"))
|
|
28
|
-
return "table";
|
|
29
|
-
if ((_c = reference.assetId) === null || _c === void 0 ? void 0 : _c.includes(":figure:"))
|
|
30
|
-
return "figure";
|
|
31
|
-
return reference.blockId ? "block" : "unit";
|
|
32
|
-
}
|
|
33
|
-
function documentMention(value, start) {
|
|
34
|
-
const prefix = value.slice(Math.max(0, start - 28), start);
|
|
35
|
-
if (/(?:Circolare(?:\s+7\/2019)?|Circ\.)\s*$/iu.test(prefix))
|
|
36
|
-
return "circ2019";
|
|
37
|
-
if (/NTC(?:\s+2018)?\s*$/iu.test(prefix))
|
|
38
|
-
return "ntc2018";
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
function matchingLink(found, value, links) {
|
|
42
|
-
var _a;
|
|
43
|
-
const document = (_a = found.documentHint) !== null && _a !== void 0 ? _a : documentMention(value, found.start);
|
|
44
|
-
let candidates = links.filter(({ reference }) => {
|
|
45
|
-
const kind = referenceKind(reference);
|
|
46
|
-
const sameKind = found.kind === "unit" ? kind === "unit" || kind === "block" : kind === found.kind;
|
|
47
|
-
const number = found.kind === "unit" ? reference.numbering : reference.assetNumber;
|
|
48
|
-
return sameKind && typeof number === "string" && normalizedNumber(number) === found.number
|
|
49
|
-
&& (!document || reference.document === document);
|
|
50
|
-
});
|
|
51
|
-
if (found.kind === "unit" && candidates.some(({ reference }) => referenceKind(reference) === "unit")) {
|
|
52
|
-
candidates = candidates.filter(({ reference }) => referenceKind(reference) === "unit");
|
|
53
|
-
}
|
|
54
|
-
const targets = new Set(candidates.map(({ target }) => JSON.stringify(target)));
|
|
55
|
-
return targets.size === 1 ? candidates[0] : undefined;
|
|
56
|
-
}
|
|
57
|
-
function linkifyText(node, links) {
|
|
58
|
-
var _a;
|
|
59
|
-
const value = (_a = node.value) !== null && _a !== void 0 ? _a : "";
|
|
60
|
-
const replacements = findCrossReferences(value)
|
|
61
|
-
.map((found) => ({ found, link: matchingLink(found, value, links) }))
|
|
62
|
-
.filter((item) => Boolean(item.link));
|
|
63
|
-
if (!replacements.length)
|
|
64
|
-
return [node];
|
|
65
|
-
const nodes = [];
|
|
66
|
-
let cursor = 0;
|
|
67
|
-
for (const { found, link } of replacements) {
|
|
68
|
-
if (found.start > cursor)
|
|
69
|
-
nodes.push({ type: "text", value: value.slice(cursor, found.start) });
|
|
70
|
-
nodes.push({ type: "link", url: link.href, data: { hProperties: { className: "scv-chat-reference-link" } },
|
|
71
|
-
children: [{ type: "text", value: value.slice(found.start, found.end) }] });
|
|
72
|
-
cursor = found.end;
|
|
73
|
-
}
|
|
74
|
-
if (cursor < value.length)
|
|
75
|
-
nodes.push({ type: "text", value: value.slice(cursor) });
|
|
76
|
-
return nodes;
|
|
77
|
-
}
|
|
78
|
-
function remarkVerifiedReferences({ links }) {
|
|
79
|
-
return (tree) => {
|
|
80
|
-
function visit(node) {
|
|
81
|
-
if (!node.children || skippedNodeTypes.has(node.type))
|
|
82
|
-
return;
|
|
83
|
-
node.children = node.children.flatMap((child) => child.type === "text" ? linkifyText(child, links) : (visit(child), [child]));
|
|
84
|
-
}
|
|
85
|
-
visit(tree);
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Controlled Markdown surface for model output.
|
|
90
|
-
* Raw HTML is deliberately skipped; URLs retain react-markdown's safe transform.
|
|
91
|
-
*/
|
|
92
|
-
export function ChatNTCMarkdown({ markdown, references = [], hrefForTarget, onNavigate, onNavigationError }) {
|
|
93
|
-
const links = hrefForTarget ? references.map((reference) => {
|
|
94
|
-
const target = viewerTargetForCitation(reference);
|
|
95
|
-
return { reference, target, href: hrefForTarget(target) };
|
|
96
|
-
}) : [];
|
|
97
|
-
const targetByHref = new Map(links.map((link) => [link.href, link.target]));
|
|
98
|
-
const components = {
|
|
99
|
-
a(_a) {
|
|
100
|
-
var { href } = _a, props = __rest(_a, ["href"]);
|
|
101
|
-
const target = href ? targetByHref.get(href) : undefined;
|
|
102
|
-
return _jsx("a", Object.assign({}, props, { href: href, onClick: target && onNavigate ? (event) => {
|
|
103
|
-
if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)
|
|
104
|
-
return;
|
|
105
|
-
event.preventDefault();
|
|
106
|
-
void Promise.resolve().then(() => onNavigate(target)).catch(() => onNavigationError === null || onNavigationError === void 0 ? void 0 : onNavigationError());
|
|
107
|
-
} : undefined }));
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
return _jsx("div", { className: "scv-chat-markdown", children: _jsx(ReactMarkdown, { skipHtml: true, components: components, remarkPlugins: [remarkGfm, remarkMath, [remarkVerifiedReferences, { links }]], rehypePlugins: [[rehypeKatex, { throwOnError: false, strict: "warn", trust: false }]], children: markdown }) });
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=ChatNTCMarkdown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatNTCMarkdown.js","sourceRoot":"","sources":["../../shared/chatntc-ui/ChatNTCMarkdown.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAkCjE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAEhH,SAAS,aAAa,CAAC,SAA2B;;IAChD,IAAI,MAAM,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC;IAC/C,IAAI,MAAA,SAAS,CAAC,OAAO,0CAAE,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/D,IAAI,MAAA,SAAS,CAAC,OAAO,0CAAE,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3D,IAAI,MAAA,SAAS,CAAC,OAAO,0CAAE,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7D,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,KAAa;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,2CAA2C,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAChF,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAqB,EAAE,KAAa,EAAE,KAA+B;;IACzF,MAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,mCAAI,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;QACnG,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;QACnF,OAAO,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM;eACrF,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;QACrG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,KAA+B;;IACtE,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAI,mBAAmB,CAAC,KAAK,CAAsB;SAClE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,IAAI,EAA0D,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,YAAY,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,yBAAyB,EAAE,EAAE;YACxG,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9E,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,EAAE,KAAK,EAAuC;IAC9E,OAAO,CAAC,IAAkB,EAAE,EAAE;QAC5B,SAAS,KAAK,CAAC,IAAkB;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChI,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAwB;IAC/H,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAClD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACR,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG;QACjB,CAAC,CAAC,EAAiD;gBAAjD,EAAE,IAAI,OAA2C,EAAtC,KAAK,cAAhB,QAAkB,CAAF;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,OAAO,4BAAO,KAAK,IAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM;wBAAE,OAAO;oBACnG,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,EAAI,CAAC,CAAC;gBAC3F,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC;QACpB,CAAC;KACF,CAAC;IACF,OAAO,cAAK,SAAS,EAAC,mBAAmB,YACvC,KAAC,aAAa,IACZ,QAAQ,QACR,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAC7E,aAAa,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,YACrF,QAAQ,GAAiB,GACvB,CAAC;AACT,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { ChatNTCClassification, ChatNTCRetrievalContext } from "../chatntc/types.js";
|
|
2
|
-
import type { ViewerTarget } from "../permalinks.js";
|
|
3
|
-
import { type ChatResult, type ChatTransport } from "./transport.js";
|
|
4
|
-
export declare const CHATNTC_CLASSIFICATION_LABELS: Record<ChatNTCClassification, string>;
|
|
5
|
-
export interface ChatNTCTurn {
|
|
6
|
-
id: string;
|
|
7
|
-
question: string;
|
|
8
|
-
timestamp: string;
|
|
9
|
-
answeredAt?: string;
|
|
10
|
-
context?: ChatNTCRetrievalContext;
|
|
11
|
-
result?: ChatResult;
|
|
12
|
-
status: "pending" | "complete" | "error" | "cancelled";
|
|
13
|
-
error?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ChatNTCPanelProps {
|
|
16
|
-
transport: ChatTransport;
|
|
17
|
-
context?: ChatNTCRetrievalContext | null;
|
|
18
|
-
onNavigate: (target: ViewerTarget) => void | Promise<void>;
|
|
19
|
-
hrefForTarget: (target: ViewerTarget) => string;
|
|
20
|
-
/** Optional controlled lifecycle, independent of any storage implementation. Remount to switch sessions. */
|
|
21
|
-
initialTurns?: ChatNTCTurn[];
|
|
22
|
-
onTurnsChange?: (turns: ChatNTCTurn[]) => void;
|
|
23
|
-
onNewChat?: () => void;
|
|
24
|
-
historyEnabled?: boolean;
|
|
25
|
-
showNewChatAction?: boolean;
|
|
26
|
-
disabled?: boolean;
|
|
27
|
-
currentCorpusFingerprint?: string;
|
|
28
|
-
}
|
|
29
|
-
export declare function ChatNTCPanel({ transport, onNavigate, hrefForTarget, initialTurns, onTurnsChange, onNewChat, historyEnabled, showNewChatAction, disabled, currentCorpusFingerprint }: ChatNTCPanelProps): import("react/jsx-runtime").JSX.Element;
|