@origintrail-official/dkg-node-ui 10.0.21 → 10.0.23

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.
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The most subjects one graph delta reads: the turn, its session and messages,
3
+ * and what hangs off them. Every relation query is bounded by it, and so is the
4
+ * set they form together, the turn's own subjects and its transitions first.
5
+ * Past it the subjects that survive are not chosen by any order.
6
+ */
7
+ export declare const GRAPH_DELTA_MAX_SUBJECTS = 5000;
8
+ /** What a graph delta is anchored on: the session, the turn it reads and the turn's two messages. */
9
+ export interface GraphDeltaAnchors {
10
+ sessionUri: string;
11
+ turnUri: string;
12
+ userMsgUri: string;
13
+ assistantMsgUri: string;
14
+ }
15
+ type SelectQuery = (sparql: string) => Promise<{
16
+ bindings?: Array<Record<string, string>>;
17
+ }>;
18
+ /**
19
+ * The subjects a turn's graph delta carries, in the order the delta lists them:
20
+ * the session, the turn and its two messages; then every transition that points
21
+ * at the turn (a turn that completed after it was first written keeps its
22
+ * messages and records the new state and the final reply on a transition node:
23
+ * `recordChatTurnPersistenceTransition`); then the tools the assistant used, the
24
+ * subjects that mention either message, and the memories extracted from the
25
+ * session that contain an entity a message mentions. Each subject appears once.
26
+ *
27
+ * The relations are read by independent queries, never one UNION. A read of the
28
+ * working-memory view can span more than one graph (a by-name read also includes
29
+ * the assertion's scoped child graphs, and an agent address can have several
30
+ * candidate layer graphs), and the query engine refuses a UNION combined with
31
+ * DISTINCT or LIMIT across graphs, so a single UNION query fails the whole read
32
+ * on such a node. A subject that is not a safe IRI is skipped. A relation that
33
+ * cannot be read fails the call: a delta that silently left the transitions out
34
+ * would show the first report of a turn that has since completed.
35
+ */
36
+ export declare function selectGraphDeltaSubjects(query: SelectQuery, { sessionUri, turnUri, userMsgUri, assistantMsgUri }: GraphDeltaAnchors): Promise<string[]>;
37
+ export {};
38
+ //# sourceMappingURL=chat-graph-delta-subjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-graph-delta-subjects.d.ts","sourceRoot":"","sources":["../src/chat-graph-delta-subjects.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,qGAAqG;AACrG,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC,CAAC;AAE7F;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,WAAW,EAClB,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,iBAAiB,GACtE,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB"}
@@ -0,0 +1,57 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { isSafeIri } from '@origintrail-official/dkg-core';
3
+ import { CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE, CHAT_TURN_PERSISTENCE_TRANSITION_TYPE, DKG_ONT, RDF_TYPE, } from './chat-vocabulary.js';
4
+ /**
5
+ * The most subjects one graph delta reads: the turn, its session and messages,
6
+ * and what hangs off them. Every relation query is bounded by it, and so is the
7
+ * set they form together, the turn's own subjects and its transitions first.
8
+ * Past it the subjects that survive are not chosen by any order.
9
+ */
10
+ export const GRAPH_DELTA_MAX_SUBJECTS = 5000;
11
+ /**
12
+ * The subjects a turn's graph delta carries, in the order the delta lists them:
13
+ * the session, the turn and its two messages; then every transition that points
14
+ * at the turn (a turn that completed after it was first written keeps its
15
+ * messages and records the new state and the final reply on a transition node:
16
+ * `recordChatTurnPersistenceTransition`); then the tools the assistant used, the
17
+ * subjects that mention either message, and the memories extracted from the
18
+ * session that contain an entity a message mentions. Each subject appears once.
19
+ *
20
+ * The relations are read by independent queries, never one UNION. A read of the
21
+ * working-memory view can span more than one graph (a by-name read also includes
22
+ * the assertion's scoped child graphs, and an agent address can have several
23
+ * candidate layer graphs), and the query engine refuses a UNION combined with
24
+ * DISTINCT or LIMIT across graphs, so a single UNION query fails the whole read
25
+ * on such a node. A subject that is not a safe IRI is skipped. A relation that
26
+ * cannot be read fails the call: a delta that silently left the transitions out
27
+ * would show the first report of a turn that has since completed.
28
+ */
29
+ export async function selectGraphDeltaSubjects(query, { sessionUri, turnUri, userMsgUri, assistantMsgUri }) {
30
+ const related = async (pattern) => {
31
+ const result = await query(`SELECT DISTINCT ?s WHERE { ${pattern} } LIMIT ${GRAPH_DELTA_MAX_SUBJECTS}`);
32
+ return (result.bindings ?? []).map((binding) => String(binding.s ?? '').replace(/[<>]/g, ''));
33
+ };
34
+ const messages = `VALUES ?msg { <${userMsgUri}> <${assistantMsgUri}> }`;
35
+ const [transitions, tools, mentions, memories] = await Promise.all([
36
+ related(`
37
+ ?s <${RDF_TYPE}> <${CHAT_TURN_PERSISTENCE_TRANSITION_TYPE}> .
38
+ ?s <${CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE}> <${turnUri}> .`),
39
+ related(`<${assistantMsgUri}> <${DKG_ONT}usedTool> ?s .`),
40
+ related(`${messages} ?s <${DKG_ONT}mentionedIn> ?msg .`),
41
+ related(`
42
+ ${messages}
43
+ ?entity <${DKG_ONT}mentionedIn> ?msg .
44
+ ?s <${DKG_ONT}contains> ?entity .
45
+ ?s <${DKG_ONT}extractedFrom> <${sessionUri}> .`),
46
+ ]);
47
+ const subjects = new Set([sessionUri, turnUri, userMsgUri, assistantMsgUri]);
48
+ for (const iri of [...transitions, ...tools, ...mentions, ...memories]) {
49
+ if (subjects.size >= GRAPH_DELTA_MAX_SUBJECTS)
50
+ break;
51
+ if (!iri || !isSafeIri(iri))
52
+ continue;
53
+ subjects.add(iri);
54
+ }
55
+ return [...subjects];
56
+ }
57
+ //# sourceMappingURL=chat-graph-delta-subjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-graph-delta-subjects.js","sourceRoot":"","sources":["../src/chat-graph-delta-subjects.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EACL,0CAA0C,EAC1C,qCAAqC,EACrC,OAAO,EACP,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAY7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAkB,EAClB,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAqB;IAEvE,MAAM,OAAO,GAAG,KAAK,EAAE,OAAe,EAAqB,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,8BAA8B,OAAO,YAAY,wBAAwB,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,kBAAkB,UAAU,MAAM,eAAe,KAAK,CAAC;IACxE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,OAAO,CAAC;cACE,QAAQ,MAAM,qCAAqC;cACnD,0CAA0C,MAAM,OAAO,KAAK,CAAC;QACvE,OAAO,CAAC,IAAI,eAAe,MAAM,OAAO,gBAAgB,CAAC;QACzD,OAAO,CAAC,GAAG,QAAQ,QAAQ,OAAO,qBAAqB,CAAC;QACxD,OAAO,CAAC;UACF,QAAQ;mBACC,OAAO;cACZ,OAAO;cACP,OAAO,mBAAmB,UAAU,KAAK,CAAC;KACrD,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IACrF,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvE,IAAI,QAAQ,CAAC,IAAI,IAAI,wBAAwB;YAAE,MAAM;QACrD,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,SAAS;QACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { type ChatAttachmentRef, type ChatToolCall, type ChatTurnPersistenceDisplayState } from './chat-literals.js';
2
+ /** The most messages the session list returns for one session. */
3
+ export declare const SESSION_LIST_MESSAGE_LIMIT = 100;
4
+ type HistoryRow = Record<string, string>;
5
+ /** One message of a chat history, as the two history readers accumulate it. */
6
+ export interface ChatHistoryMessage {
7
+ uri: string;
8
+ author: string;
9
+ text: string;
10
+ ts: string;
11
+ turnId?: string;
12
+ persistStatus?: ChatTurnPersistenceDisplayState;
13
+ failureReason?: string | null;
14
+ attachmentRefs?: ChatAttachmentRef[];
15
+ toolCalls?: ChatToolCall[];
16
+ }
17
+ /**
18
+ * The reply a turn's agent message shows once the turn completed, or `undefined`
19
+ * when this row does not complete it.
20
+ *
21
+ * A turn that first reported `pending` or `failed` and completed later is not
22
+ * written a second time: a `stored` transition records the completion and
23
+ * carries the final reply, and the assistant Message keeps the `schema:text`
24
+ * of the first report. Every reader that returns a turn's reply has to resolve
25
+ * it through here, so `getSession` and `getRecentChats` cannot disagree about
26
+ * which reply a turn ended with. `row` is one result row of a query that joins
27
+ * a turn to its transitions.
28
+ *
29
+ * The transition's `assistantReply` is written with `JSON.stringify`, exactly
30
+ * like the base `schema:text`, so it needs the same decode. Without it a
31
+ * stored turn (the dominant path on reload) would replace the correctly decoded
32
+ * base text with a literal-`\n` string and markdown would break after a refresh.
33
+ */
34
+ export declare function completedTurnReply(row: {
35
+ transitionState?: string;
36
+ persistenceState?: string;
37
+ transitionAssistantReply?: string;
38
+ }): string | undefined;
39
+ /**
40
+ * The messages of ONE session from its rows, in the order each message first
41
+ * appears. A row that names no message URI is keyed by its author, timestamp and
42
+ * text, so identical anonymous rows collapse into one message.
43
+ */
44
+ export declare function foldSessionRows(rows: readonly HistoryRow[]): ChatHistoryMessage[];
45
+ /**
46
+ * The listed messages of MANY sessions from one batched query's rows, by session
47
+ * URI, at most `SESSION_LIST_MESSAGE_LIMIT` per session. A message with several
48
+ * transitions comes back once per transition, in transition order within the rows
49
+ * of its message, so the latest completion wins.
50
+ *
51
+ * `null` marks a message that is not listed (its session is already at the cap,
52
+ * or its first row names no session): it is never built, and its later rows are
53
+ * skipped, so the cap counts messages, not rows. A row that names no message URI
54
+ * cannot be tied to a turn (the query joins a turn's transitions through the
55
+ * message), so each such row is its own message and never completes anything.
56
+ */
57
+ export declare function foldListedRows(rows: readonly HistoryRow[]): Map<string, ChatHistoryMessage[]>;
58
+ export {};
59
+ //# sourceMappingURL=chat-history-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-history-rows.d.ts","sourceRoot":"","sources":["../src/chat-history-rows.ts"],"names":[],"mappings":"AAiBA,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAE5B,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,GAAG,MAAM,GAAG,SAAS,CAIrB;AA2DD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAajF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAoB7F"}
@@ -0,0 +1,152 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Assembly of chat-history messages from the rows a history query returns, for
4
+ * the two readers of `ChatMemoryManager`: `getSession` (one session, every
5
+ * field) and `getRecentChats` (many sessions in one batch, `author`, `text` and
6
+ * `ts` only).
7
+ *
8
+ * Both queries return a message once per transition of its turn. Both readers
9
+ * therefore keep ONE accumulated message per message URI: the row that first
10
+ * names a message creates it (`historyMessageFromRow`), and every row of it,
11
+ * that first one included, folds its transition columns into that same object
12
+ * (`mergeTransitionRow`). A session holds references to those objects, so a
13
+ * later row's completion shows in the session's list without a second pass. The
14
+ * two readers share the creating and the folding helpers and differ only in how
15
+ * they index the messages (`foldSessionRows`, `foldListedRows`).
16
+ */
17
+ import { decodeRdfStringLiteral } from './rdf-literal.js';
18
+ import { choosePersistenceStatus, normalizePersistenceStatus, parseAttachmentRefsLiteral, parseToolCallsLiteral, stripRdfLiteral, } from './chat-literals.js';
19
+ /** The most messages the session list returns for one session. */
20
+ export const SESSION_LIST_MESSAGE_LIMIT = 100;
21
+ /**
22
+ * The reply a turn's agent message shows once the turn completed, or `undefined`
23
+ * when this row does not complete it.
24
+ *
25
+ * A turn that first reported `pending` or `failed` and completed later is not
26
+ * written a second time: a `stored` transition records the completion and
27
+ * carries the final reply, and the assistant Message keeps the `schema:text`
28
+ * of the first report. Every reader that returns a turn's reply has to resolve
29
+ * it through here, so `getSession` and `getRecentChats` cannot disagree about
30
+ * which reply a turn ended with. `row` is one result row of a query that joins
31
+ * a turn to its transitions.
32
+ *
33
+ * The transition's `assistantReply` is written with `JSON.stringify`, exactly
34
+ * like the base `schema:text`, so it needs the same decode. Without it a
35
+ * stored turn (the dominant path on reload) would replace the correctly decoded
36
+ * base text with a literal-`\n` string and markdown would break after a refresh.
37
+ */
38
+ export function completedTurnReply(row) {
39
+ const status = normalizePersistenceStatus(row.transitionState ?? row.persistenceState ?? '');
40
+ const reply = String(row.transitionAssistantReply ?? '');
41
+ return status === 'stored' && reply ? decodeRdfStringLiteral(reply) : undefined;
42
+ }
43
+ /** The URI a history row names its message by, or `''` when it names none. */
44
+ function historyRowUri(row) {
45
+ return String(row.m ?? '').replace(/[<>]/g, '');
46
+ }
47
+ /**
48
+ * A new message from the row that first names it: what the message itself says
49
+ * (author, text, timestamp, and the turn id and attachment refs when the row
50
+ * carries them). What the turn's transitions say about it comes from
51
+ * `mergeTransitionRow`, which the readers apply to every row of the message,
52
+ * this first one included.
53
+ */
54
+ function historyMessageFromRow(row, uri) {
55
+ return {
56
+ uri,
57
+ author: row.author?.includes('user') ? 'user' : 'agent',
58
+ text: decodeRdfStringLiteral(row.text ?? ''),
59
+ ts: stripRdfLiteral(row.ts ?? ''),
60
+ turnId: stripRdfLiteral(row.turnId ?? '') || undefined,
61
+ attachmentRefs: parseAttachmentRefsLiteral(String(row.attachmentRefs ?? '')),
62
+ };
63
+ }
64
+ /**
65
+ * Fold what one row says about its turn into the message it belongs to: the
66
+ * reply a `stored` transition carries (`completedTurnReply`, the one decoding
67
+ * rule; the later row wins), the attachment refs and tool calls it records, and
68
+ * the persistence status (a transition's when the row names one, else the
69
+ * turn's own) and failure reason. A column a reader's query does not select
70
+ * reads as absent and changes nothing: `getSession` selects every column read
71
+ * here, the session list only `transitionState` and `transitionAssistantReply`,
72
+ * which is all its output needs.
73
+ */
74
+ function mergeTransitionRow(message, row) {
75
+ const candidateStatus = normalizePersistenceStatus(row.transitionState ?? row.persistenceState ?? '');
76
+ const completedReply = completedTurnReply(row);
77
+ if (message.author === 'agent' && completedReply !== undefined) {
78
+ message.text = completedReply;
79
+ }
80
+ const transitionAttachmentRefs = parseAttachmentRefsLiteral(String(row.transitionAttachmentRefs ?? ''));
81
+ if (message.author === 'user' && candidateStatus === 'stored' && transitionAttachmentRefs?.length) {
82
+ message.attachmentRefs = transitionAttachmentRefs;
83
+ }
84
+ const transitionToolCalls = parseToolCallsLiteral(String(row.transitionToolCalls ?? ''));
85
+ if (message.author === 'agent' && candidateStatus === 'stored' && transitionToolCalls?.length) {
86
+ message.toolCalls = transitionToolCalls;
87
+ }
88
+ message.persistStatus = choosePersistenceStatus(message.persistStatus, candidateStatus);
89
+ const candidateReason = stripRdfLiteral(row.transitionFailureReason ?? row.failureReason ?? '').trim();
90
+ if (candidateStatus === 'failed' && candidateReason) {
91
+ message.failureReason = candidateReason;
92
+ }
93
+ if (message.persistStatus && message.persistStatus !== 'failed') {
94
+ message.failureReason = undefined;
95
+ }
96
+ }
97
+ /**
98
+ * The messages of ONE session from its rows, in the order each message first
99
+ * appears. A row that names no message URI is keyed by its author, timestamp and
100
+ * text, so identical anonymous rows collapse into one message.
101
+ */
102
+ export function foldSessionRows(rows) {
103
+ const messagesByUri = new Map();
104
+ for (const row of rows) {
105
+ const uri = historyRowUri(row);
106
+ const key = uri || `${String(row.author ?? '')}:${String(row.ts ?? '')}:${String(row.text ?? '')}`;
107
+ let message = messagesByUri.get(key);
108
+ if (!message) {
109
+ message = historyMessageFromRow(row, uri);
110
+ messagesByUri.set(key, message);
111
+ }
112
+ mergeTransitionRow(message, row);
113
+ }
114
+ return [...messagesByUri.values()];
115
+ }
116
+ /**
117
+ * The listed messages of MANY sessions from one batched query's rows, by session
118
+ * URI, at most `SESSION_LIST_MESSAGE_LIMIT` per session. A message with several
119
+ * transitions comes back once per transition, in transition order within the rows
120
+ * of its message, so the latest completion wins.
121
+ *
122
+ * `null` marks a message that is not listed (its session is already at the cap,
123
+ * or its first row names no session): it is never built, and its later rows are
124
+ * skipped, so the cap counts messages, not rows. A row that names no message URI
125
+ * cannot be tied to a turn (the query joins a turn's transitions through the
126
+ * message), so each such row is its own message and never completes anything.
127
+ */
128
+ export function foldListedRows(rows) {
129
+ const messagesByUri = new Map();
130
+ const bySession = new Map();
131
+ for (const row of rows) {
132
+ const uri = historyRowUri(row);
133
+ let message = uri ? messagesByUri.get(uri) : undefined;
134
+ if (message === undefined) {
135
+ const sessionUri = String(row.session ?? '').replace(/[<>]/g, '');
136
+ let listed = sessionUri ? bySession.get(sessionUri) : undefined;
137
+ if (sessionUri && !listed)
138
+ bySession.set(sessionUri, (listed = []));
139
+ message = null;
140
+ if (listed && listed.length < SESSION_LIST_MESSAGE_LIMIT) {
141
+ message = historyMessageFromRow(row, uri);
142
+ listed.push(message);
143
+ }
144
+ if (uri)
145
+ messagesByUri.set(uri, message);
146
+ }
147
+ if (message && uri)
148
+ mergeTransitionRow(message, row);
149
+ }
150
+ return bySession;
151
+ }
152
+ //# sourceMappingURL=chat-history-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-history-rows.js","sourceRoot":"","sources":["../src/chat-history-rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Value parsing for chat-history rows: RDF literals, the persistence status a
3
+ * turn or transition reports, and the JSON literals that carry a message's
4
+ * attachment refs and tool calls. Pure functions over the strings a SPARQL row
5
+ * holds, shared by `ChatMemoryManager` (which also validates the same shapes
6
+ * before writing them) and the history-row assembly in `chat-history-rows.ts`.
7
+ */
8
+ /** What a history reader shows for a turn: the persistence status of its latest report. */
9
+ export type ChatTurnPersistenceDisplayState = 'pending' | 'in_progress' | 'stored' | 'failed' | 'skipped';
10
+ export interface ChatAttachmentRef {
11
+ id?: string;
12
+ fileName: string;
13
+ contextGraphId: string;
14
+ assertionName?: string;
15
+ assertionUri: string;
16
+ fileHash: string;
17
+ detectedContentType?: string;
18
+ extractionStatus?: 'completed' | 'skipped' | 'failed';
19
+ tripleCount?: number;
20
+ rootEntity?: string;
21
+ }
22
+ export interface ChatToolCall {
23
+ name: string;
24
+ args: Record<string, unknown>;
25
+ result: unknown;
26
+ }
27
+ export declare function stripRdfLiteral(value: string): string;
28
+ export declare function normalizePersistenceStatus(value: string): ChatTurnPersistenceDisplayState | undefined;
29
+ export declare function choosePersistenceStatus(current: ChatTurnPersistenceDisplayState | undefined, candidate: ChatTurnPersistenceDisplayState | undefined): ChatTurnPersistenceDisplayState | undefined;
30
+ export declare function normalizeChatAttachmentRefs(raw: unknown): ChatAttachmentRef[] | undefined;
31
+ export declare function normalizeChatToolCalls(raw: unknown): ChatToolCall[] | undefined;
32
+ export declare function parseAttachmentRefsLiteral(value: string): ChatAttachmentRef[] | undefined;
33
+ export declare function parseToolCallsLiteral(value: string): ChatToolCall[] | undefined;
34
+ //# sourceMappingURL=chat-literals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-literals.d.ts","sourceRoot":"","sources":["../src/chat-literals.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAEH,2FAA2F;AAC3F,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAU1G,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,+BAA+B,GAAG,SAAS,CAMrG;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,+BAA+B,GAAG,SAAS,EACpD,SAAS,EAAE,+BAA+B,GAAG,SAAS,GACrD,+BAA+B,GAAG,SAAS,CAI7C;AAgCD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAMzF;AAeD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,GAAG,SAAS,CAM/E;AAiBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAWzF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,GAAG,SAAS,CAW/E"}
@@ -0,0 +1,141 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Value parsing for chat-history rows: RDF literals, the persistence status a
4
+ * turn or transition reports, and the JSON literals that carry a message's
5
+ * attachment refs and tool calls. Pure functions over the strings a SPARQL row
6
+ * holds, shared by `ChatMemoryManager` (which also validates the same shapes
7
+ * before writing them) and the history-row assembly in `chat-history-rows.ts`.
8
+ */
9
+ const PERSISTENCE_STATUS_RANK = {
10
+ skipped: 1,
11
+ pending: 2,
12
+ in_progress: 3,
13
+ failed: 4,
14
+ stored: 5,
15
+ };
16
+ export function stripRdfLiteral(value) {
17
+ if (!value)
18
+ return '';
19
+ const typed = value.match(/^"([\s\S]*)"(?:\^\^<[^>]+>)?(?:@[a-z-]+)?$/);
20
+ if (typed)
21
+ return typed[1];
22
+ return value;
23
+ }
24
+ export function normalizePersistenceStatus(value) {
25
+ const status = stripRdfLiteral(value).trim();
26
+ if (status === 'pending' || status === 'in_progress' || status === 'stored' || status === 'failed' || status === 'skipped') {
27
+ return status;
28
+ }
29
+ return undefined;
30
+ }
31
+ export function choosePersistenceStatus(current, candidate) {
32
+ if (!candidate)
33
+ return current;
34
+ if (!current)
35
+ return candidate;
36
+ return PERSISTENCE_STATUS_RANK[candidate] > PERSISTENCE_STATUS_RANK[current] ? candidate : current;
37
+ }
38
+ function normalizeChatAttachmentRef(raw) {
39
+ if (!raw || typeof raw !== 'object')
40
+ return null;
41
+ const record = raw;
42
+ const fileName = typeof record.fileName === 'string' ? record.fileName.trim() : '';
43
+ const contextGraphId = typeof record.contextGraphId === 'string' ? record.contextGraphId.trim() : '';
44
+ const assertionUri = typeof record.assertionUri === 'string' ? record.assertionUri.trim() : '';
45
+ const fileHash = typeof record.fileHash === 'string' ? record.fileHash.trim() : '';
46
+ if (!fileName || !contextGraphId || !assertionUri || !fileHash)
47
+ return null;
48
+ const normalized = {
49
+ fileName,
50
+ contextGraphId,
51
+ assertionUri,
52
+ fileHash,
53
+ };
54
+ if (typeof record.id === 'string' && record.id.trim())
55
+ normalized.id = record.id.trim();
56
+ if (typeof record.assertionName === 'string' && record.assertionName.trim())
57
+ normalized.assertionName = record.assertionName.trim();
58
+ if (typeof record.detectedContentType === 'string' && record.detectedContentType.trim()) {
59
+ normalized.detectedContentType = record.detectedContentType.trim();
60
+ }
61
+ if (record.extractionStatus === 'completed' || record.extractionStatus === 'skipped' || record.extractionStatus === 'failed') {
62
+ normalized.extractionStatus = record.extractionStatus;
63
+ }
64
+ if (typeof record.tripleCount === 'number' && Number.isFinite(record.tripleCount) && record.tripleCount >= 0) {
65
+ normalized.tripleCount = record.tripleCount;
66
+ }
67
+ if (typeof record.rootEntity === 'string' && record.rootEntity.trim())
68
+ normalized.rootEntity = record.rootEntity.trim();
69
+ return normalized;
70
+ }
71
+ export function normalizeChatAttachmentRefs(raw) {
72
+ if (!Array.isArray(raw))
73
+ return undefined;
74
+ const refs = raw
75
+ .map((entry) => normalizeChatAttachmentRef(entry))
76
+ .filter((entry) => entry != null);
77
+ return refs.length > 0 ? refs : undefined;
78
+ }
79
+ function normalizeChatToolCall(raw) {
80
+ if (!raw || typeof raw !== 'object')
81
+ return null;
82
+ const record = raw;
83
+ const name = typeof record.name === 'string' && record.name.trim() ? record.name.trim() : 'unknown';
84
+ return {
85
+ name,
86
+ args: record.args && typeof record.args === 'object' && !Array.isArray(record.args)
87
+ ? record.args
88
+ : {},
89
+ result: record.result,
90
+ };
91
+ }
92
+ export function normalizeChatToolCalls(raw) {
93
+ if (!Array.isArray(raw))
94
+ return undefined;
95
+ const calls = raw
96
+ .map((entry) => normalizeChatToolCall(entry))
97
+ .filter((entry) => entry != null);
98
+ return calls.length > 0 ? calls : undefined;
99
+ }
100
+ function parseNestedJsonLiteral(value) {
101
+ let current = value;
102
+ for (let depth = 0; depth < 4; depth += 1) {
103
+ if (typeof current !== 'string')
104
+ return current;
105
+ const trimmed = current.trim();
106
+ if (!trimmed)
107
+ return undefined;
108
+ try {
109
+ current = JSON.parse(trimmed);
110
+ }
111
+ catch {
112
+ return undefined;
113
+ }
114
+ }
115
+ return current;
116
+ }
117
+ export function parseAttachmentRefsLiteral(value) {
118
+ const candidates = [value, stripRdfLiteral(value)]
119
+ .map((candidate) => candidate.trim())
120
+ .filter((candidate, index, all) => candidate.length > 0 && all.indexOf(candidate) === index);
121
+ for (const candidate of candidates) {
122
+ const parsed = parseNestedJsonLiteral(candidate) ?? parseNestedJsonLiteral(JSON.stringify(candidate));
123
+ const normalized = normalizeChatAttachmentRefs(parsed);
124
+ if (normalized?.length)
125
+ return normalized;
126
+ }
127
+ return undefined;
128
+ }
129
+ export function parseToolCallsLiteral(value) {
130
+ const candidates = [value, stripRdfLiteral(value)]
131
+ .map((candidate) => candidate.trim())
132
+ .filter((candidate, index, all) => candidate.length > 0 && all.indexOf(candidate) === index);
133
+ for (const candidate of candidates) {
134
+ const parsed = parseNestedJsonLiteral(candidate) ?? parseNestedJsonLiteral(JSON.stringify(candidate));
135
+ const normalized = normalizeChatToolCalls(parsed);
136
+ if (normalized?.length)
137
+ return normalized;
138
+ }
139
+ return undefined;
140
+ }
141
+ //# sourceMappingURL=chat-literals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-literals.js","sourceRoot":"","sources":["../src/chat-literals.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;GAMG;AAKH,MAAM,uBAAuB,GAAoD;IAC/E,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACV,CAAC;AAqBF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3H,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAoD,EACpD,SAAsD;IAEtD,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,uBAAuB,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACrG,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAY;IAC9C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,cAAc,GAAG,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrG,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE5E,MAAM,UAAU,GAAsB;QACpC,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,QAAQ;KACT,CAAC;IACF,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACxF,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACpI,IAAI,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;QACxF,UAAU,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,WAAW,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,IAAI,MAAM,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAC7H,UAAU,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;QAC7G,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACxH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG;SACb,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;SACjD,MAAM,CAAC,CAAC,KAAK,EAA8B,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACjF,CAAC,CAAC,MAAM,CAAC,IAA+B;YACxC,CAAC,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG;SACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,KAAK,EAAyB,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC;IAE/F,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACtG,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,MAAM;YAAE,OAAO,UAAU,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC;IAE/F,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACtG,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,MAAM;YAAE,OAAO,UAAU,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { LlmConfig } from './llm/types.js';
2
+ import { type ChatAttachmentRef, type ChatToolCall } from './chat-literals.js';
2
3
  export { decodeRdfStringLiteral } from './rdf-literal.js';
3
4
  export interface MemoryToolContext {
4
5
  query: (sparql: string, opts?: {
@@ -154,23 +155,6 @@ export interface ImportResult {
154
155
  */
155
156
  export declare const AGENT_CONTEXT_GRAPH = "agent-context";
156
157
  export declare const CHAT_TURNS_ASSERTION = "chat-turns";
157
- interface ChatAttachmentRef {
158
- id?: string;
159
- fileName: string;
160
- contextGraphId: string;
161
- assertionName?: string;
162
- assertionUri: string;
163
- fileHash: string;
164
- detectedContentType?: string;
165
- extractionStatus?: 'completed' | 'skipped' | 'failed';
166
- tripleCount?: number;
167
- rootEntity?: string;
168
- }
169
- interface ChatToolCall {
170
- name: string;
171
- args: Record<string, unknown>;
172
- result: unknown;
173
- }
174
158
  export declare class ChatMemoryManager {
175
159
  private tools;
176
160
  private llmConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-memory.d.ts","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-memory.d.ts","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { chatTurnSubjectPattern, scopedChatTurnUri, decodeExistingChatTurn } from './chat-turn-subject.js';
2
2
  import { isSafeIri } from '@origintrail-official/dkg-core';
3
3
  import { LlmClient } from './llm/client.js';
4
- import { decodeRdfStringLiteral } from './rdf-literal.js';
4
+ import { normalizeChatAttachmentRefs, stripRdfLiteral } from './chat-literals.js';
5
+ import { foldListedRows, foldSessionRows } from './chat-history-rows.js';
6
+ import { selectGraphDeltaSubjects } from './chat-graph-delta-subjects.js';
7
+ import { CHAT_ATTACHMENT_REFS_PREDICATE, CHAT_NS, CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE, CHAT_TURN_PERSISTENCE_TRANSITION_TYPE, DKG_ONT, MEMORY_NS, RDF_TYPE, SCHEMA, XSD_DATETIME, } from './chat-vocabulary.js';
5
8
  export { decodeRdfStringLiteral } from './rdf-literal.js';
6
9
  const IMPORT_SOURCES = ['claude', 'chatgpt', 'gemini', 'other'];
7
10
  /**
@@ -27,148 +30,7 @@ const IMPORT_SOURCES = ['claude', 'chatgpt', 'gemini', 'other'];
27
30
  export const AGENT_CONTEXT_GRAPH = 'agent-context';
28
31
  export const CHAT_TURNS_ASSERTION = 'chat-turns';
29
32
  const OPENCLAW_LOCAL_SESSION_ID = 'openclaw:dkg-ui';
30
- const CHAT_NS = 'urn:dkg:chat:';
31
- const MEMORY_NS = 'urn:dkg:memory:';
32
- const SCHEMA = 'http://schema.org/';
33
- const DKG_ONT = 'http://dkg.io/ontology/';
34
- const RDF_TYPE = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type';
35
- const XSD_DATETIME = 'http://www.w3.org/2001/XMLSchema#dateTime';
36
33
  const OPENCLAW_LOCAL_SESSION_URI = `${CHAT_NS}session:${OPENCLAW_LOCAL_SESSION_ID}`;
37
- const CHAT_ATTACHMENT_REFS_PREDICATE = `${DKG_ONT}attachmentRefs`;
38
- const CHAT_TURN_PERSISTENCE_TRANSITION_TYPE = `${DKG_ONT}ChatTurnPersistenceTransition`;
39
- const CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE = `${DKG_ONT}updatesTurn`;
40
- const PERSISTENCE_STATUS_RANK = {
41
- skipped: 1,
42
- pending: 2,
43
- in_progress: 3,
44
- failed: 4,
45
- stored: 5,
46
- };
47
- function stripRdfLiteral(value) {
48
- if (!value)
49
- return '';
50
- const typed = value.match(/^"([\s\S]*)"(?:\^\^<[^>]+>)?(?:@[a-z-]+)?$/);
51
- if (typed)
52
- return typed[1];
53
- return value;
54
- }
55
- function normalizePersistenceStatus(value) {
56
- const status = stripRdfLiteral(value).trim();
57
- if (status === 'pending' || status === 'in_progress' || status === 'stored' || status === 'failed' || status === 'skipped') {
58
- return status;
59
- }
60
- return undefined;
61
- }
62
- function choosePersistenceStatus(current, candidate) {
63
- if (!candidate)
64
- return current;
65
- if (!current)
66
- return candidate;
67
- return PERSISTENCE_STATUS_RANK[candidate] > PERSISTENCE_STATUS_RANK[current] ? candidate : current;
68
- }
69
- function normalizeChatAttachmentRef(raw) {
70
- if (!raw || typeof raw !== 'object')
71
- return null;
72
- const record = raw;
73
- const fileName = typeof record.fileName === 'string' ? record.fileName.trim() : '';
74
- const contextGraphId = typeof record.contextGraphId === 'string' ? record.contextGraphId.trim() : '';
75
- const assertionUri = typeof record.assertionUri === 'string' ? record.assertionUri.trim() : '';
76
- const fileHash = typeof record.fileHash === 'string' ? record.fileHash.trim() : '';
77
- if (!fileName || !contextGraphId || !assertionUri || !fileHash)
78
- return null;
79
- const normalized = {
80
- fileName,
81
- contextGraphId,
82
- assertionUri,
83
- fileHash,
84
- };
85
- if (typeof record.id === 'string' && record.id.trim())
86
- normalized.id = record.id.trim();
87
- if (typeof record.assertionName === 'string' && record.assertionName.trim())
88
- normalized.assertionName = record.assertionName.trim();
89
- if (typeof record.detectedContentType === 'string' && record.detectedContentType.trim()) {
90
- normalized.detectedContentType = record.detectedContentType.trim();
91
- }
92
- if (record.extractionStatus === 'completed' || record.extractionStatus === 'skipped' || record.extractionStatus === 'failed') {
93
- normalized.extractionStatus = record.extractionStatus;
94
- }
95
- if (typeof record.tripleCount === 'number' && Number.isFinite(record.tripleCount) && record.tripleCount >= 0) {
96
- normalized.tripleCount = record.tripleCount;
97
- }
98
- if (typeof record.rootEntity === 'string' && record.rootEntity.trim())
99
- normalized.rootEntity = record.rootEntity.trim();
100
- return normalized;
101
- }
102
- function normalizeChatAttachmentRefs(raw) {
103
- if (!Array.isArray(raw))
104
- return undefined;
105
- const refs = raw
106
- .map((entry) => normalizeChatAttachmentRef(entry))
107
- .filter((entry) => entry != null);
108
- return refs.length > 0 ? refs : undefined;
109
- }
110
- function normalizeChatToolCall(raw) {
111
- if (!raw || typeof raw !== 'object')
112
- return null;
113
- const record = raw;
114
- const name = typeof record.name === 'string' && record.name.trim() ? record.name.trim() : 'unknown';
115
- return {
116
- name,
117
- args: record.args && typeof record.args === 'object' && !Array.isArray(record.args)
118
- ? record.args
119
- : {},
120
- result: record.result,
121
- };
122
- }
123
- function normalizeChatToolCalls(raw) {
124
- if (!Array.isArray(raw))
125
- return undefined;
126
- const calls = raw
127
- .map((entry) => normalizeChatToolCall(entry))
128
- .filter((entry) => entry != null);
129
- return calls.length > 0 ? calls : undefined;
130
- }
131
- function parseNestedJsonLiteral(value) {
132
- let current = value;
133
- for (let depth = 0; depth < 4; depth += 1) {
134
- if (typeof current !== 'string')
135
- return current;
136
- const trimmed = current.trim();
137
- if (!trimmed)
138
- return undefined;
139
- try {
140
- current = JSON.parse(trimmed);
141
- }
142
- catch {
143
- return undefined;
144
- }
145
- }
146
- return current;
147
- }
148
- function parseAttachmentRefsLiteral(value) {
149
- const candidates = [value, stripRdfLiteral(value)]
150
- .map((candidate) => candidate.trim())
151
- .filter((candidate, index, all) => candidate.length > 0 && all.indexOf(candidate) === index);
152
- for (const candidate of candidates) {
153
- const parsed = parseNestedJsonLiteral(candidate) ?? parseNestedJsonLiteral(JSON.stringify(candidate));
154
- const normalized = normalizeChatAttachmentRefs(parsed);
155
- if (normalized?.length)
156
- return normalized;
157
- }
158
- return undefined;
159
- }
160
- function parseToolCallsLiteral(value) {
161
- const candidates = [value, stripRdfLiteral(value)]
162
- .map((candidate) => candidate.trim())
163
- .filter((candidate, index, all) => candidate.length > 0 && all.indexOf(candidate) === index);
164
- for (const candidate of candidates) {
165
- const parsed = parseNestedJsonLiteral(candidate) ?? parseNestedJsonLiteral(JSON.stringify(candidate));
166
- const normalized = normalizeChatToolCalls(parsed);
167
- if (normalized?.length)
168
- return normalized;
169
- }
170
- return undefined;
171
- }
172
34
  function parseRdfInt(value) {
173
35
  if (!value)
174
36
  return 0;
@@ -783,53 +645,9 @@ export class ChatMemoryManager {
783
645
  const bindings = msgsResult.bindings ?? [];
784
646
  if (bindings.length === 0)
785
647
  return null;
786
- const messagesByUri = new Map();
787
- for (const mb of bindings) {
788
- const uri = String(mb.m ?? '').replace(/[<>]/g, '');
789
- const key = uri || `${String(mb.author ?? '')}:${String(mb.ts ?? '')}:${String(mb.text ?? '')}`;
790
- let message = messagesByUri.get(key);
791
- if (!message) {
792
- message = {
793
- uri,
794
- author: mb.author?.includes('user') ? 'user' : 'agent',
795
- text: decodeRdfStringLiteral(mb.text ?? ''),
796
- ts: stripRdfLiteral(mb.ts ?? ''),
797
- turnId: stripRdfLiteral(mb.turnId ?? '') || undefined,
798
- attachmentRefs: parseAttachmentRefsLiteral(String(mb.attachmentRefs ?? '')),
799
- };
800
- messagesByUri.set(key, message);
801
- }
802
- const candidateStatus = normalizePersistenceStatus(mb.transitionState ?? mb.persistenceState ?? '');
803
- const transitionAssistantReply = String(mb.transitionAssistantReply ?? '');
804
- if (message.author === 'agent' && candidateStatus === 'stored' && transitionAssistantReply) {
805
- // The transition `assistantReply` is written via `JSON.stringify`
806
- // (see opts.assistantReply quad) exactly like the base
807
- // `schema:text`, so it needs the same decode — otherwise a
808
- // stored turn (the dominant path on reload) overwrites the
809
- // correctly-decoded base text with a literal-`\n` string and
810
- // markdown breaks after refresh again.
811
- message.text = decodeRdfStringLiteral(transitionAssistantReply);
812
- }
813
- const transitionAttachmentRefs = parseAttachmentRefsLiteral(String(mb.transitionAttachmentRefs ?? ''));
814
- if (message.author === 'user' && candidateStatus === 'stored' && transitionAttachmentRefs?.length) {
815
- message.attachmentRefs = transitionAttachmentRefs;
816
- }
817
- const transitionToolCalls = parseToolCallsLiteral(String(mb.transitionToolCalls ?? ''));
818
- if (message.author === 'agent' && candidateStatus === 'stored' && transitionToolCalls?.length) {
819
- message.toolCalls = transitionToolCalls;
820
- }
821
- message.persistStatus = choosePersistenceStatus(message.persistStatus, candidateStatus);
822
- const candidateReason = stripRdfLiteral(mb.transitionFailureReason ?? mb.failureReason ?? '').trim();
823
- if (candidateStatus === 'failed' && candidateReason) {
824
- message.failureReason = candidateReason;
825
- }
826
- if (message.persistStatus && message.persistStatus !== 'failed') {
827
- message.failureReason = undefined;
828
- }
829
- }
830
648
  return {
831
649
  session: sessionId,
832
- messages: [...messagesByUri.values()],
650
+ messages: foldSessionRows(bindings),
833
651
  };
834
652
  }
835
653
  catch {
@@ -870,32 +688,62 @@ export class ChatMemoryManager {
870
688
  const values = sessionEntries
871
689
  .map((entry) => `<${entry.sessionUri}>`)
872
690
  .join(' ');
873
- const allMsgs = await this.tools.query(`SELECT ?session ?author ?text ?ts WHERE {
691
+ // One round trip for both: the messages of the listed sessions, and the
692
+ // turns among them that completed by a `stored` transition. Such a turn
693
+ // keeps the reply of its first report on its assistant Message and carries
694
+ // the final one on the transition, so each message is joined to the
695
+ // transitions of the turn it is the assistant Message of (through the
696
+ // turn's `hasAssistantMessage` link), and `completedTurnReply`, the
697
+ // resolver `getSession` uses, decides which reply wins. The turn is matched
698
+ // to its transitions through its own session link, so a turn of another
699
+ // session that reuses the id never contributes.
700
+ //
701
+ // A legacy turn subject that two sessions share links the assistant
702
+ // Message of both, and a transition on it does not say whose completion
703
+ // it is. Such a subject contributes no completion here, so the list keeps
704
+ // each session's reply as it was written and never shows one session the
705
+ // other's (see `chatTurnSubjectPattern`).
706
+ //
707
+ // The completed turns are an independent subquery over the listed
708
+ // sessions' turns, joined to the messages on the assistant Message. The
709
+ // query must not use a UNION: a read of the working-memory view can span
710
+ // more than one graph (a by-name read also includes the assertion's scoped
711
+ // child graphs, and an agent address can have several candidate layer
712
+ // graphs), and the query engine refuses a UNION combined with ORDER BY
713
+ // across graphs, so the whole list would come back empty. An OPTIONAL
714
+ // join of `turnId` onto every message would cost more on this query, and
715
+ // would pair a message that has no `turnId` with the transitions of the
716
+ // session's other turns.
717
+ const allMsgs = await this.tools.query(`SELECT ?session ?author ?text ?ts ?m ?transitionState ?transitionAssistantReply WHERE {
874
718
  VALUES ?session { ${values} }
875
719
  ?m <${SCHEMA}isPartOf> ?session .
876
720
  ?m <${SCHEMA}author> ?author .
877
721
  ?m <${SCHEMA}text> ?text .
878
722
  ?m <${SCHEMA}dateCreated> ?ts
879
- } ORDER BY ?session ?ts`, this.wmReadOpts());
880
- const bySession = new Map();
881
- for (const row of allMsgs.bindings ?? []) {
882
- const sessionUri = String(row.session ?? '').replace(/[<>]/g, '');
883
- if (!sessionUri)
884
- continue;
885
- if (!bySession.has(sessionUri))
886
- bySession.set(sessionUri, []);
887
- const msgs = bySession.get(sessionUri);
888
- if (msgs.length >= 100)
889
- continue;
890
- msgs.push({
891
- author: row.author?.includes('user') ? 'user' : 'agent',
892
- text: decodeRdfStringLiteral(row.text ?? ''),
893
- ts: stripRdfLiteral(row.ts ?? ''),
894
- });
723
+ OPTIONAL {
724
+ {
725
+ SELECT ?m ?transitionState ?transitionAssistantReply ?transitionTs WHERE {
726
+ VALUES ?turnSession { ${values} }
727
+ ?turn <${SCHEMA}isPartOf> ?turnSession .
728
+ ?transition <${CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE}> ?turn .
729
+ ?turn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
730
+ ?transition <${RDF_TYPE}> <${CHAT_TURN_PERSISTENCE_TRANSITION_TYPE}> .
731
+ ?transition <${DKG_ONT}persistenceState> ?transitionState .
732
+ ?transition <${DKG_ONT}assistantReply> ?transitionAssistantReply .
733
+ ?turn <${DKG_ONT}hasAssistantMessage> ?m .
734
+ OPTIONAL { ?transition <${SCHEMA}dateCreated> ?transitionTs }
735
+ FILTER NOT EXISTS {
736
+ ?turn <${SCHEMA}isPartOf> ?otherSession .
737
+ FILTER(?otherSession != ?turnSession)
738
+ }
739
+ }
895
740
  }
741
+ }
742
+ } ORDER BY ?session ?ts ?transitionTs`, this.wmReadOpts());
743
+ const bySession = foldListedRows(allMsgs.bindings ?? []);
896
744
  return sessionEntries.map((entry) => ({
897
745
  session: entry.sessionId,
898
- messages: bySession.get(entry.sessionUri) ?? [],
746
+ messages: (bySession.get(entry.sessionUri) ?? []).map(({ author, text, ts }) => ({ author, text, ts })),
899
747
  }));
900
748
  }
901
749
  catch {
@@ -1046,27 +894,9 @@ export class ChatMemoryManager {
1046
894
  triples: [],
1047
895
  };
1048
896
  }
1049
- const relatedSubjectsResult = await this.tools.query(`SELECT DISTINCT ?s WHERE {
1050
- VALUES ?msg { <${userMsgUri}> <${assistantMsgUri}> }
1051
- { BIND(<${sessionUri}> AS ?s) }
1052
- UNION { BIND(<${turnUri}> AS ?s) }
1053
- UNION { BIND(?msg AS ?s) }
1054
- UNION { <${assistantMsgUri}> <${DKG_ONT}usedTool> ?s }
1055
- UNION { ?s <${DKG_ONT}mentionedIn> ?msg }
1056
- UNION {
1057
- ?entity <${DKG_ONT}mentionedIn> ?msg .
1058
- ?s <${DKG_ONT}contains> ?entity .
1059
- ?s <${DKG_ONT}extractedFrom> <${sessionUri}> .
1060
- }
1061
- } LIMIT 5000`, this.wmReadOpts());
1062
- const subjectSet = new Set([sessionUri, turnUri, userMsgUri, assistantMsgUri]);
1063
- for (const b of relatedSubjectsResult.bindings ?? []) {
1064
- const iri = String(b.s ?? '').replace(/[<>]/g, '');
1065
- if (!iri || !isSafeIri(iri))
1066
- continue;
1067
- subjectSet.add(iri);
1068
- }
1069
- const values = [...subjectSet]
897
+ // What hangs off the turn, including its transitions (see the function).
898
+ const subjects = await selectGraphDeltaSubjects((sparql) => this.tools.query(sparql, this.wmReadOpts()), { sessionUri, turnUri, userMsgUri, assistantMsgUri });
899
+ const values = subjects
1070
900
  .map((iri) => `<${iri}>`)
1071
901
  .join(' ');
1072
902
  const deltaResult = await this.tools.query(`CONSTRUCT { ?s ?p ?o } WHERE {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-memory.js","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-memory.js","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** The RDF vocabulary the chat-turns assertion is written and read in, shared by the chat modules. */
2
+ export declare const CHAT_NS = "urn:dkg:chat:";
3
+ export declare const MEMORY_NS = "urn:dkg:memory:";
4
+ export declare const SCHEMA = "http://schema.org/";
5
+ export declare const DKG_ONT = "http://dkg.io/ontology/";
6
+ export declare const RDF_TYPE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
7
+ export declare const XSD_DATETIME = "http://www.w3.org/2001/XMLSchema#dateTime";
8
+ export declare const CHAT_ATTACHMENT_REFS_PREDICATE = "http://dkg.io/ontology/attachmentRefs";
9
+ /** A completion of a turn after its first report: a node of this type that points at the turn. */
10
+ export declare const CHAT_TURN_PERSISTENCE_TRANSITION_TYPE = "http://dkg.io/ontology/ChatTurnPersistenceTransition";
11
+ export declare const CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE = "http://dkg.io/ontology/updatesTurn";
12
+ //# sourceMappingURL=chat-vocabulary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-vocabulary.d.ts","sourceRoot":"","sources":["../src/chat-vocabulary.ts"],"names":[],"mappings":"AACA,sGAAsG;AACtG,eAAO,MAAM,OAAO,kBAAkB,CAAC;AACvC,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAC3C,eAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,eAAO,MAAM,OAAO,4BAA4B,CAAC;AACjD,eAAO,MAAM,QAAQ,oDAAoD,CAAC;AAC1E,eAAO,MAAM,YAAY,8CAA8C,CAAC;AACxE,eAAO,MAAM,8BAA8B,0CAA6B,CAAC;AACzE,kGAAkG;AAClG,eAAO,MAAM,qCAAqC,yDAA4C,CAAC;AAC/F,eAAO,MAAM,0CAA0C,uCAA0B,CAAC"}
@@ -0,0 +1,13 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /** The RDF vocabulary the chat-turns assertion is written and read in, shared by the chat modules. */
3
+ export const CHAT_NS = 'urn:dkg:chat:';
4
+ export const MEMORY_NS = 'urn:dkg:memory:';
5
+ export const SCHEMA = 'http://schema.org/';
6
+ export const DKG_ONT = 'http://dkg.io/ontology/';
7
+ export const RDF_TYPE = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type';
8
+ export const XSD_DATETIME = 'http://www.w3.org/2001/XMLSchema#dateTime';
9
+ export const CHAT_ATTACHMENT_REFS_PREDICATE = `${DKG_ONT}attachmentRefs`;
10
+ /** A completion of a turn after its first report: a node of this type that points at the turn. */
11
+ export const CHAT_TURN_PERSISTENCE_TRANSITION_TYPE = `${DKG_ONT}ChatTurnPersistenceTransition`;
12
+ export const CHAT_TURN_PERSISTENCE_TRANSITION_PREDICATE = `${DKG_ONT}updatesTurn`;
13
+ //# sourceMappingURL=chat-vocabulary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-vocabulary.js","sourceRoot":"","sources":["../src/chat-vocabulary.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sGAAsG;AACtG,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC;AACvC,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAC3C,MAAM,CAAC,MAAM,MAAM,GAAG,oBAAoB,CAAC;AAC3C,MAAM,CAAC,MAAM,OAAO,GAAG,yBAAyB,CAAC;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,iDAAiD,CAAC;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,2CAA2C,CAAC;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,OAAO,gBAAgB,CAAC;AACzE,kGAAkG;AAClG,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,OAAO,+BAA+B,CAAC;AAC/F,MAAM,CAAC,MAAM,0CAA0C,GAAG,GAAG,OAAO,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@origintrail-official/dkg-node-ui",
3
- "version": "10.0.21",
3
+ "version": "10.0.23",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -26,9 +26,9 @@
26
26
  "viem": "^2.53.1",
27
27
  "zod": "^3.25.76",
28
28
  "zustand": "^5.0.12",
29
- "@origintrail-official/dkg-core": "10.0.21",
30
- "@origintrail-official/dkg-graph-viz": "10.0.21",
31
- "@origintrail-official/dkg-node-store": "10.0.21"
29
+ "@origintrail-official/dkg-core": "10.0.23",
30
+ "@origintrail-official/dkg-node-store": "10.0.23",
31
+ "@origintrail-official/dkg-graph-viz": "10.0.23"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@playwright/test": "^1.59.1",