@origintrail-official/dkg-node-ui 0.0.1-dev.1773506972.23bf9c0 → 0.0.1

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,74 @@
1
+ import type { ServerResponse } from 'node:http';
2
+ import type { LlmConfig } from './chat-assistant.js';
3
+ import type { ChatMemoryManager } from './chat-memory.js';
4
+ export interface AgentChatMessage {
5
+ role: 'system' | 'user' | 'assistant' | 'tool';
6
+ content: string;
7
+ tool_calls?: ToolCall[];
8
+ tool_call_id?: string;
9
+ name?: string;
10
+ }
11
+ export interface ToolCall {
12
+ id: string;
13
+ type: 'function';
14
+ function: {
15
+ name: string;
16
+ arguments: string;
17
+ };
18
+ }
19
+ export interface AgentChatResponse {
20
+ reply: string;
21
+ sessionId: string;
22
+ toolCalls?: Array<{
23
+ name: string;
24
+ args: Record<string, unknown>;
25
+ result: unknown;
26
+ }>;
27
+ }
28
+ export interface AgentToolContext {
29
+ query: (sparql: string, opts?: {
30
+ paranetId?: string;
31
+ }) => Promise<any>;
32
+ publish: (paranetId: string, quads: any[]) => Promise<any>;
33
+ findAgents: (opts?: {
34
+ framework?: string;
35
+ }) => Promise<any[]>;
36
+ sendChat: (peerId: string, text: string) => Promise<{
37
+ delivered: boolean;
38
+ error?: string;
39
+ }>;
40
+ listParanets: () => Promise<any[]>;
41
+ getStatus: () => Promise<any>;
42
+ }
43
+ export declare class AgentChatService {
44
+ private tools;
45
+ private llmConfig;
46
+ private sessions;
47
+ private cleanupTimer;
48
+ private memory;
49
+ constructor(tools: AgentToolContext, llmConfig: LlmConfig, memory?: ChatMemoryManager | null);
50
+ setMemory(memory: ChatMemoryManager | null): void;
51
+ updateConfig(llmConfig: LlmConfig): void;
52
+ destroy(): void;
53
+ chat(userMessage: string, sessionId?: string): Promise<AgentChatResponse>;
54
+ /**
55
+ * Streaming variant — writes SSE events directly to an HTTP response.
56
+ * Events: token, tool_call, tool_result, done, error
57
+ */
58
+ chatStream(userMessage: string, res: ServerResponse, sessionId?: string): Promise<void>;
59
+ /**
60
+ * Stream LLM response via SSE, accumulating tool calls.
61
+ * Returns the final content + any tool calls after the stream completes.
62
+ */
63
+ private streamLlmToResponse;
64
+ private getOrCreateSession;
65
+ private trimHistory;
66
+ private cleanupSessions;
67
+ private callLlm;
68
+ private executeTool;
69
+ /**
70
+ * Fire-and-forget: store chat exchange + extract knowledge in the background.
71
+ */
72
+ private persistToMemory;
73
+ }
74
+ //# sourceMappingURL=agent-chat-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-chat-service.d.ts","sourceRoot":"","sources":["../src/agent-chat-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrF;AAQD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACvE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,YAAY,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/B;AA2ID,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,MAAM,CAA2B;gBAG/B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,SAAS,EAC5B,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAMnC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAIjD,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC,OAAO,IAAI,IAAI;IAIT,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyD/E;;;OAGG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D7F;;;OAGG;YACW,mBAAmB;IA6EjC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;YAST,OAAO;YAwCP,WAAW;IAmEzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAexB"}
@@ -0,0 +1,482 @@
1
+ function safeStringify(value) {
2
+ return JSON.stringify(value, (_k, v) => typeof v === 'bigint' ? v.toString() : v);
3
+ }
4
+ const MAX_HISTORY = 40;
5
+ const SESSION_TTL_MS = 30 * 60_000;
6
+ const MAX_TOOL_ROUNDS = 8;
7
+ const TOOL_DEFINITIONS = [
8
+ {
9
+ type: 'function',
10
+ function: {
11
+ name: 'dkg_query',
12
+ description: 'Run a SPARQL query on the DKG triple store. Use for retrieving knowledge, facts, agents, KCs, KAs. Always add LIMIT.',
13
+ parameters: {
14
+ type: 'object',
15
+ properties: {
16
+ sparql: { type: 'string', description: 'The SPARQL query to execute (SELECT, CONSTRUCT, ASK, DESCRIBE)' },
17
+ paranetId: { type: 'string', description: 'Optional paranet to scope the query to' },
18
+ },
19
+ required: ['sparql'],
20
+ },
21
+ },
22
+ },
23
+ {
24
+ type: 'function',
25
+ function: {
26
+ name: 'dkg_publish',
27
+ description: 'Publish RDF triples (N-Quads) to a paranet in the DKG.',
28
+ parameters: {
29
+ type: 'object',
30
+ properties: {
31
+ paranetId: { type: 'string', description: 'Target paranet ID' },
32
+ nquads: { type: 'string', description: 'The triples in N-Quads format, one per line' },
33
+ },
34
+ required: ['paranetId', 'nquads'],
35
+ },
36
+ },
37
+ },
38
+ {
39
+ type: 'function',
40
+ function: {
41
+ name: 'dkg_find_agents',
42
+ description: 'Discover agents on the DKG network. Returns name, peerId, framework, nodeRole, connectionStatus.',
43
+ parameters: {
44
+ type: 'object',
45
+ properties: {
46
+ framework: { type: 'string', description: 'Optional filter by framework (e.g. DKG, ElizaOS)' },
47
+ },
48
+ },
49
+ },
50
+ },
51
+ {
52
+ type: 'function',
53
+ function: {
54
+ name: 'dkg_send_message',
55
+ description: 'Send a P2P chat message to another agent by their peerId.',
56
+ parameters: {
57
+ type: 'object',
58
+ properties: {
59
+ peerId: { type: 'string', description: 'The recipient agent peer ID' },
60
+ text: { type: 'string', description: 'Message text to send' },
61
+ },
62
+ required: ['peerId', 'text'],
63
+ },
64
+ },
65
+ },
66
+ {
67
+ type: 'function',
68
+ function: {
69
+ name: 'dkg_list_paranets',
70
+ description: 'List all paranets known to this node (id, name, description, subscriber count).',
71
+ parameters: { type: 'object', properties: {} },
72
+ },
73
+ },
74
+ {
75
+ type: 'function',
76
+ function: {
77
+ name: 'dkg_node_status',
78
+ description: 'Get this node\'s current status: peerId, uptime, connectedPeers, networkId.',
79
+ parameters: { type: 'object', properties: {} },
80
+ },
81
+ },
82
+ {
83
+ type: 'function',
84
+ function: {
85
+ name: 'dkg_recall_memory',
86
+ description: 'Search your local memory (past conversations and extracted knowledge). Use a natural language question and it will be translated to SPARQL, or provide raw SPARQL directly.',
87
+ parameters: {
88
+ type: 'object',
89
+ properties: {
90
+ question: { type: 'string', description: 'Natural language question about past conversations or stored knowledge' },
91
+ sparql: { type: 'string', description: 'Raw SPARQL query to run against the memory graph (optional — use question for NL search)' },
92
+ },
93
+ },
94
+ },
95
+ },
96
+ {
97
+ type: 'function',
98
+ function: {
99
+ name: 'dkg_memory_status',
100
+ description: 'Get statistics about your local memory: number of stored conversations, extracted entities, total triples.',
101
+ parameters: { type: 'object', properties: {} },
102
+ },
103
+ },
104
+ ];
105
+ const DEFAULT_SYSTEM_PROMPT = `You are a DKG (Decentralized Knowledge Graph) agent running on a node. You have direct access to the knowledge graph and a persistent local memory through tools.
106
+
107
+ **Your capabilities:**
108
+ - Query the knowledge graph using SPARQL (dkg_query)
109
+ - Publish new knowledge as RDF triples (dkg_publish)
110
+ - Discover and message other agents on the network (dkg_find_agents, dkg_send_message)
111
+ - List paranets and check node status (dkg_list_paranets, dkg_node_status)
112
+ - Search your local memory for past conversations and extracted knowledge (dkg_recall_memory)
113
+ - Check your memory stats (dkg_memory_status)
114
+
115
+ **Memory system:**
116
+ - Every conversation is automatically stored in your local knowledge graph as RDF triples
117
+ - Entities and relationships mentioned in conversations are extracted and stored as structured knowledge
118
+ - You can recall past conversations and knowledge using dkg_recall_memory
119
+ - Memory lives in the "agent-memory" workspace and can be enshrined as private Knowledge Assets on-chain
120
+
121
+ **Knowledge Graph concepts:**
122
+ - The DKG stores data as RDF triples organized into Knowledge Collections (KCs) and Knowledge Assets (KAs)
123
+ - Data is organized into "paranets" — topic-specific sub-networks
124
+ - Your node has local memory (your own triples) and can access shared memory (network-wide triples) via paranets
125
+ - Entities use URIs; common predicates include schema.org, dkg ontology terms
126
+
127
+ **Guidelines:**
128
+ - When asked about past interactions or stored knowledge, use dkg_recall_memory
129
+ - When asked about data in the DKG, use dkg_query
130
+ - Always add LIMIT to SPARQL queries (default 50)
131
+ - For publishing, use N-Quads format with proper URI syntax
132
+ - Be concise but informative. Show query results in a readable format
133
+ - When unsure, explain what you're doing and why`;
134
+ export class AgentChatService {
135
+ tools;
136
+ llmConfig;
137
+ sessions = new Map();
138
+ cleanupTimer;
139
+ memory;
140
+ constructor(tools, llmConfig, memory) {
141
+ this.tools = tools;
142
+ this.llmConfig = llmConfig;
143
+ this.memory = memory ?? null;
144
+ this.cleanupTimer = setInterval(() => this.cleanupSessions(), 5 * 60_000);
145
+ }
146
+ setMemory(memory) {
147
+ this.memory = memory;
148
+ }
149
+ updateConfig(llmConfig) {
150
+ this.llmConfig = llmConfig;
151
+ }
152
+ destroy() {
153
+ clearInterval(this.cleanupTimer);
154
+ }
155
+ async chat(userMessage, sessionId) {
156
+ const sid = sessionId || crypto.randomUUID();
157
+ const session = this.getOrCreateSession(sid);
158
+ session.messages.push({ role: 'user', content: userMessage });
159
+ session.lastActivity = Date.now();
160
+ this.trimHistory(session);
161
+ const collectedToolCalls = [];
162
+ for (let round = 0; round < MAX_TOOL_ROUNDS; round++) {
163
+ const response = await this.callLlm(session.messages);
164
+ if (!response.tool_calls?.length) {
165
+ session.messages.push({ role: 'assistant', content: response.content });
166
+ const result = { reply: response.content, sessionId: sid, toolCalls: collectedToolCalls.length ? collectedToolCalls : undefined };
167
+ this.persistToMemory(sid, userMessage, response.content, result.toolCalls);
168
+ return result;
169
+ }
170
+ session.messages.push({
171
+ role: 'assistant',
172
+ content: response.content || '',
173
+ tool_calls: response.tool_calls,
174
+ });
175
+ for (const tc of response.tool_calls) {
176
+ let args = {};
177
+ try {
178
+ args = JSON.parse(tc.function.arguments);
179
+ }
180
+ catch { /* empty */ }
181
+ let result;
182
+ try {
183
+ result = await this.executeTool(tc.function.name, args);
184
+ }
185
+ catch (err) {
186
+ result = { error: err.message };
187
+ }
188
+ collectedToolCalls.push({ name: tc.function.name, args, result });
189
+ session.messages.push({
190
+ role: 'tool',
191
+ tool_call_id: tc.id,
192
+ name: tc.function.name,
193
+ content: typeof result === 'string' ? result : safeStringify(result),
194
+ });
195
+ }
196
+ }
197
+ const last = session.messages[session.messages.length - 1];
198
+ const reply = last?.content || 'I ran out of tool iterations. Please try a simpler request.';
199
+ this.persistToMemory(sid, userMessage, reply, collectedToolCalls.length ? collectedToolCalls : undefined);
200
+ return {
201
+ reply,
202
+ sessionId: sid,
203
+ toolCalls: collectedToolCalls.length ? collectedToolCalls : undefined,
204
+ };
205
+ }
206
+ /**
207
+ * Streaming variant — writes SSE events directly to an HTTP response.
208
+ * Events: token, tool_call, tool_result, done, error
209
+ */
210
+ async chatStream(userMessage, res, sessionId) {
211
+ const sid = sessionId || crypto.randomUUID();
212
+ const session = this.getOrCreateSession(sid);
213
+ session.messages.push({ role: 'user', content: userMessage });
214
+ session.lastActivity = Date.now();
215
+ this.trimHistory(session);
216
+ const collectedToolCalls = [];
217
+ const sse = (event, data) => {
218
+ res.write(`event: ${event}\ndata: ${safeStringify(data)}\n\n`);
219
+ };
220
+ try {
221
+ for (let round = 0; round < MAX_TOOL_ROUNDS; round++) {
222
+ const { content, tool_calls } = await this.streamLlmToResponse(session.messages, res);
223
+ if (!tool_calls?.length) {
224
+ session.messages.push({ role: 'assistant', content });
225
+ sse('done', { sessionId: sid, toolCalls: collectedToolCalls.length ? collectedToolCalls : undefined });
226
+ this.persistToMemory(sid, userMessage, content, collectedToolCalls.length ? collectedToolCalls : undefined);
227
+ res.end();
228
+ return;
229
+ }
230
+ session.messages.push({ role: 'assistant', content: content || '', tool_calls });
231
+ for (const tc of tool_calls) {
232
+ let args = {};
233
+ try {
234
+ args = JSON.parse(tc.function.arguments);
235
+ }
236
+ catch { /* empty */ }
237
+ sse('tool_call', { id: tc.id, name: tc.function.name, args });
238
+ let result;
239
+ try {
240
+ result = await this.executeTool(tc.function.name, args);
241
+ }
242
+ catch (err) {
243
+ result = { error: err.message };
244
+ }
245
+ collectedToolCalls.push({ name: tc.function.name, args, result });
246
+ sse('tool_result', { id: tc.id, name: tc.function.name, result });
247
+ session.messages.push({
248
+ role: 'tool',
249
+ tool_call_id: tc.id,
250
+ name: tc.function.name,
251
+ content: typeof result === 'string' ? result : safeStringify(result),
252
+ });
253
+ }
254
+ }
255
+ const lastMsg = session.messages[session.messages.length - 1];
256
+ this.persistToMemory(sid, userMessage, lastMsg?.content ?? '', collectedToolCalls.length ? collectedToolCalls : undefined);
257
+ sse('done', { sessionId: sid, toolCalls: collectedToolCalls.length ? collectedToolCalls : undefined });
258
+ res.end();
259
+ }
260
+ catch (err) {
261
+ sse('error', { error: err.message });
262
+ res.end();
263
+ }
264
+ }
265
+ /**
266
+ * Stream LLM response via SSE, accumulating tool calls.
267
+ * Returns the final content + any tool calls after the stream completes.
268
+ */
269
+ async streamLlmToResponse(messages, res) {
270
+ const { apiKey, model = 'gpt-4o-mini', baseURL = 'https://api.openai.com/v1' } = this.llmConfig;
271
+ const url = `${baseURL.replace(/\/$/, '')}/chat/completions`;
272
+ const fetchRes = await fetch(url, {
273
+ method: 'POST',
274
+ headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${apiKey}` },
275
+ body: JSON.stringify({
276
+ model, messages, tools: TOOL_DEFINITIONS, tool_choice: 'auto', max_tokens: 2048, stream: true,
277
+ }),
278
+ });
279
+ if (!fetchRes.ok) {
280
+ const err = await fetchRes.text();
281
+ throw new Error(`LLM API ${fetchRes.status}: ${err.slice(0, 300)}`);
282
+ }
283
+ let content = '';
284
+ const toolCallAccum = new Map();
285
+ const reader = fetchRes.body?.getReader();
286
+ if (!reader)
287
+ throw new Error('No response body');
288
+ const decoder = new TextDecoder();
289
+ let buffer = '';
290
+ while (true) {
291
+ const { done, value } = await reader.read();
292
+ if (done)
293
+ break;
294
+ buffer += decoder.decode(value, { stream: true });
295
+ const lines = buffer.split('\n');
296
+ buffer = lines.pop() ?? '';
297
+ for (const line of lines) {
298
+ const trimmed = line.trim();
299
+ if (!trimmed.startsWith('data: '))
300
+ continue;
301
+ const payload = trimmed.slice(6);
302
+ if (payload === '[DONE]')
303
+ continue;
304
+ let chunk;
305
+ try {
306
+ chunk = JSON.parse(payload);
307
+ }
308
+ catch {
309
+ continue;
310
+ }
311
+ const delta = chunk.choices?.[0]?.delta;
312
+ if (!delta)
313
+ continue;
314
+ if (delta.content) {
315
+ content += delta.content;
316
+ res.write(`event: token\ndata: ${JSON.stringify({ content: delta.content })}\n\n`);
317
+ }
318
+ if (delta.tool_calls) {
319
+ for (const dtc of delta.tool_calls) {
320
+ const idx = dtc.index ?? 0;
321
+ if (!toolCallAccum.has(idx)) {
322
+ toolCallAccum.set(idx, { id: dtc.id ?? '', name: dtc.function?.name ?? '', args: '' });
323
+ }
324
+ const acc = toolCallAccum.get(idx);
325
+ if (dtc.id)
326
+ acc.id = dtc.id;
327
+ if (dtc.function?.name)
328
+ acc.name = dtc.function.name;
329
+ if (dtc.function?.arguments)
330
+ acc.args += dtc.function.arguments;
331
+ }
332
+ }
333
+ }
334
+ }
335
+ if (toolCallAccum.size === 0)
336
+ return { content };
337
+ const tool_calls = [];
338
+ for (const [, acc] of toolCallAccum) {
339
+ tool_calls.push({ id: acc.id, type: 'function', function: { name: acc.name, arguments: acc.args } });
340
+ }
341
+ return { content, tool_calls };
342
+ }
343
+ getOrCreateSession(sessionId) {
344
+ let session = this.sessions.get(sessionId);
345
+ if (!session) {
346
+ const systemPrompt = this.llmConfig.systemPrompt || DEFAULT_SYSTEM_PROMPT;
347
+ session = {
348
+ messages: [{ role: 'system', content: systemPrompt }],
349
+ createdAt: Date.now(),
350
+ lastActivity: Date.now(),
351
+ };
352
+ this.sessions.set(sessionId, session);
353
+ }
354
+ return session;
355
+ }
356
+ trimHistory(session) {
357
+ // Keep system message + last N messages
358
+ if (session.messages.length > MAX_HISTORY + 1) {
359
+ const system = session.messages[0];
360
+ session.messages = [system, ...session.messages.slice(-(MAX_HISTORY))];
361
+ }
362
+ }
363
+ cleanupSessions() {
364
+ const now = Date.now();
365
+ for (const [id, session] of this.sessions) {
366
+ if (now - session.lastActivity > SESSION_TTL_MS) {
367
+ this.sessions.delete(id);
368
+ }
369
+ }
370
+ }
371
+ async callLlm(messages) {
372
+ const { apiKey, model = 'gpt-4o-mini', baseURL = 'https://api.openai.com/v1' } = this.llmConfig;
373
+ const url = `${baseURL.replace(/\/$/, '')}/chat/completions`;
374
+ const res = await fetch(url, {
375
+ method: 'POST',
376
+ headers: {
377
+ 'Content-Type': 'application/json',
378
+ 'Authorization': `Bearer ${apiKey}`,
379
+ },
380
+ body: JSON.stringify({
381
+ model,
382
+ messages,
383
+ tools: TOOL_DEFINITIONS,
384
+ tool_choice: 'auto',
385
+ max_tokens: 2048,
386
+ }),
387
+ });
388
+ if (!res.ok) {
389
+ const err = await res.text();
390
+ throw new Error(`LLM API ${res.status}: ${err.slice(0, 300)}`);
391
+ }
392
+ const data = await res.json();
393
+ const choice = data.choices?.[0]?.message;
394
+ return {
395
+ content: choice?.content?.trim() ?? '',
396
+ tool_calls: choice?.tool_calls,
397
+ };
398
+ }
399
+ async executeTool(name, args) {
400
+ switch (name) {
401
+ case 'dkg_query': {
402
+ const sparql = String(args.sparql ?? '');
403
+ const paranetId = args.paranetId ? String(args.paranetId) : undefined;
404
+ const result = await this.tools.query(sparql, { paranetId });
405
+ const bindings = result?.bindings ?? [];
406
+ if (bindings.length === 0)
407
+ return { message: 'Query returned 0 results.', bindings: [] };
408
+ return { count: bindings.length, bindings: bindings.slice(0, 100) };
409
+ }
410
+ case 'dkg_publish': {
411
+ const paranetId = String(args.paranetId ?? '');
412
+ const nquads = String(args.nquads ?? '');
413
+ const lines = nquads.split('\n').filter((l) => l.trim());
414
+ const quads = lines.map((line) => {
415
+ const parts = line.trim().replace(/\s*\.\s*$/, '').split(/\s+/);
416
+ if (parts.length >= 3) {
417
+ return { subject: parts[0], predicate: parts[1], object: parts.slice(2).join(' ') };
418
+ }
419
+ return null;
420
+ }).filter(Boolean);
421
+ if (!quads.length)
422
+ return { error: 'No valid triples parsed from nquads' };
423
+ const result = await this.tools.publish(paranetId, quads);
424
+ return { kcId: result?.kcId, status: result?.status, tripleCount: quads.length };
425
+ }
426
+ case 'dkg_find_agents': {
427
+ const framework = args.framework ? String(args.framework) : undefined;
428
+ const agents = await this.tools.findAgents({ framework });
429
+ return { count: agents.length, agents: agents.slice(0, 50) };
430
+ }
431
+ case 'dkg_send_message': {
432
+ const peerId = String(args.peerId ?? '');
433
+ const text = String(args.text ?? '');
434
+ return await this.tools.sendChat(peerId, text);
435
+ }
436
+ case 'dkg_list_paranets': {
437
+ const paranets = await this.tools.listParanets();
438
+ return { count: paranets.length, paranets };
439
+ }
440
+ case 'dkg_node_status': {
441
+ return await this.tools.getStatus();
442
+ }
443
+ case 'dkg_recall_memory': {
444
+ if (!this.memory)
445
+ return { error: 'Memory system not initialized' };
446
+ const question = args.question ? String(args.question) : undefined;
447
+ const sparql = args.sparql ? String(args.sparql) : undefined;
448
+ if (sparql) {
449
+ const result = await this.memory.recall(sparql);
450
+ const bindings = result?.bindings ?? [];
451
+ return { count: bindings.length, bindings: bindings.slice(0, 100) };
452
+ }
453
+ if (question) {
454
+ const { sparql: generatedSparql, result } = await this.memory.semanticRecall(question);
455
+ const bindings = result?.bindings ?? [];
456
+ return { sparql: generatedSparql, count: bindings.length, bindings: bindings.slice(0, 100) };
457
+ }
458
+ return { error: 'Provide either "question" or "sparql"' };
459
+ }
460
+ case 'dkg_memory_status': {
461
+ if (!this.memory)
462
+ return { error: 'Memory system not initialized' };
463
+ return await this.memory.getStats();
464
+ }
465
+ default:
466
+ return { error: `Unknown tool: ${name}` };
467
+ }
468
+ }
469
+ /**
470
+ * Fire-and-forget: store chat exchange + extract knowledge in the background.
471
+ */
472
+ persistToMemory(sessionId, userMessage, assistantReply, toolCalls) {
473
+ if (!this.memory)
474
+ return;
475
+ const mem = this.memory;
476
+ // Store chat as RDF triples
477
+ mem.storeChatExchange(sessionId, userMessage, assistantReply, toolCalls).catch(() => { });
478
+ // Extract knowledge graph in the background
479
+ mem.extractKnowledge(sessionId, userMessage, assistantReply).catch(() => { });
480
+ }
481
+ }
482
+ //# sourceMappingURL=agent-chat-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-chat-service.js","sourceRoot":"","sources":["../src/agent-chat-service.ts"],"names":[],"mappings":"AAuCA,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC;AACnC,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,MAAM,gBAAgB,GAAG;IACvB;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,sHAAsH;YACnI,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;oBACzG,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;iBACrF;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,wDAAwD;YACrE,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;oBAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;iBACvF;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;aAClC;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,kGAAkG;YAC/G,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;iBAC/F;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,2DAA2D;YACxE,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBACtE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAC9D;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC7B;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,iFAAiF;YAC9F,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAC/C;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,6EAA6E;YAC1F,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAC/C;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,6KAA6K;YAC1L,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wEAAwE,EAAE;oBACnH,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0FAA0F,EAAE;iBACpI;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,4GAA4G;YACzH,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAC/C;KACF;CACF,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA4BmB,CAAC;AAElD,MAAM,OAAO,gBAAgB;IAMjB;IACA;IANF,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,YAAY,CAAiC;IAC7C,MAAM,CAA2B;IAEzC,YACU,KAAuB,EACvB,SAAoB,EAC5B,MAAiC;QAFzB,UAAK,GAAL,KAAK,CAAkB;QACvB,cAAS,GAAT,SAAS,CAAW;QAG5B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,SAAS,CAAC,MAAgC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,SAAkB;QAChD,MAAM,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,kBAAkB,GAAmC,EAAE,CAAC;QAE9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEtD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxE,MAAM,MAAM,GAAsB,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACrJ,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;gBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAC,CAAC;YAEH,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACrC,IAAI,IAAI,GAA4B,EAAE,CAAC;gBACvC,IAAI,CAAC;oBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;gBACvE,IAAI,MAAe,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBAClC,CAAC;gBAED,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBAElE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,EAAE,CAAC,EAAE;oBACnB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACtB,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;iBACrE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,EAAE,OAAO,IAAI,6DAA6D,CAAC;QAC7F,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1G,OAAO;YACL,KAAK;YACL,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,GAAmB,EAAE,SAAkB;QAC3E,MAAM,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,kBAAkB,GAAmC,EAAE,CAAC;QAE9D,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,IAAa,EAAE,EAAE;YAC3C,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,WAAW,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAEtF,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;oBACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;oBACtD,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;oBACvG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAC5G,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;gBAEjF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oBAC5B,IAAI,IAAI,GAA4B,EAAE,CAAC;oBACvC,IAAI,CAAC;wBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;oBACvE,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAE9D,IAAI,MAAe,CAAC;oBACpB,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC1D,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;oBAClC,CAAC;oBACD,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClE,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBAElE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,MAAM;wBACZ,YAAY,EAAE,EAAE,CAAC,EAAE;wBACnB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;wBACtB,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3H,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACvG,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC/B,QAA4B,EAC5B,GAAmB;QAEnB,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,aAAa,EAAE,OAAO,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChG,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE;YACpF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;aAC9F,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsD,CAAC;QAEpF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAElD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,OAAO,KAAK,QAAQ;oBAAE,SAAS;gBAEnC,IAAI,KAAU,CAAC;gBACf,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAExD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;gBACxC,IAAI,CAAC,KAAK;oBAAE,SAAS;gBAErB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;oBACzB,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBACrF,CAAC;gBAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBACnC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;wBAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;wBACzF,CAAC;wBACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;wBACpC,IAAI,GAAG,CAAC,EAAE;4BAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;wBAC5B,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI;4BAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACrD,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS;4BAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAEjD,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACjC,CAAC;IAEO,kBAAkB,CAAC,SAAiB;QAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,qBAAqB,CAAC;YAC1E,OAAO,GAAG;gBACR,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;gBACrD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;aACzB,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,OAAgB;QAClC,wCAAwC;QACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,GAAG,cAAc,EAAE,CAAC;gBAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,QAA4B;QAChD,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,aAAa,EAAE,OAAO,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChG,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC;QAE7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,MAAM,EAAE;aACpC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,QAAQ;gBACR,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,IAAI;aACjB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAO1B,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;YACtC,UAAU,EAAE,MAAM,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAA6B;QACnE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;gBACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACzF,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACtE,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;oBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtF,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,OAAO,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAc,CAAC,CAAC;gBACnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACnF,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC/D,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACrC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACjD,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC9C,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACtC,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7D,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;oBACxC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACtE,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACvF,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;oBACxC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC/F,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;YAC5D,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;gBACpE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,CAAC;YACD;gBACE,OAAO,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,SAAiB,EACjB,WAAmB,EACnB,cAAsB,EACtB,SAA0C;QAE1C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAExB,4BAA4B;QAC5B,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzF,4CAA4C;QAC5C,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@origintrail-official/dkg-node-ui",
3
- "version": "0.0.1-dev.1773506972.23bf9c0",
3
+ "version": "0.0.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "dependencies": {
8
8
  "better-sqlite3": "^11",
9
- "@origintrail-official/dkg-graph-viz": "0.0.1-dev.1773506972.23bf9c0",
10
- "@origintrail-official/dkg-core": "0.0.1-dev.1773506972.23bf9c0"
9
+ "@origintrail-official/dkg-core": "0.0.1",
10
+ "@origintrail-official/dkg-graph-viz": "0.0.1"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@codemirror/lang-sql": "^6",
@@ -28,7 +28,7 @@
28
28
  "typescript": "^5.7",
29
29
  "vite": "^6",
30
30
  "vitest": "^3",
31
- "@origintrail-official/dkg-graph-viz": "0.0.1-dev.1773506972.23bf9c0"
31
+ "@origintrail-official/dkg-graph-viz": "0.0.1"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"