@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.
- package/dist/chat-graph-delta-subjects.d.ts +38 -0
- package/dist/chat-graph-delta-subjects.d.ts.map +1 -0
- package/dist/chat-graph-delta-subjects.js +57 -0
- package/dist/chat-graph-delta-subjects.js.map +1 -0
- package/dist/chat-history-rows.d.ts +59 -0
- package/dist/chat-history-rows.d.ts.map +1 -0
- package/dist/chat-history-rows.js +152 -0
- package/dist/chat-history-rows.js.map +1 -0
- package/dist/chat-literals.d.ts +34 -0
- package/dist/chat-literals.d.ts.map +1 -0
- package/dist/chat-literals.js +141 -0
- package/dist/chat-literals.js.map +1 -0
- package/dist/chat-memory.d.ts +1 -17
- package/dist/chat-memory.d.ts.map +1 -1
- package/dist/chat-memory.js +56 -226
- package/dist/chat-memory.js.map +1 -1
- package/dist/chat-vocabulary.d.ts +12 -0
- package/dist/chat-vocabulary.d.ts.map +1 -0
- package/dist/chat-vocabulary.js +13 -0
- package/dist/chat-vocabulary.js.map +1 -0
- package/package.json +4 -4
|
@@ -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":"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"}
|
package/dist/chat-memory.d.ts
CHANGED
|
@@ -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":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-memory.d.ts","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
|
package/dist/chat-memory.js
CHANGED
|
@@ -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 {
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
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
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
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 {
|
package/dist/chat-memory.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
30
|
-
"@origintrail-official/dkg-
|
|
31
|
-
"@origintrail-official/dkg-
|
|
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",
|