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

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.
Files changed (66) hide show
  1. package/README.md +1 -0
  2. package/dist/api.d.ts +7 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +22 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/chain-cursor-stores.d.ts +11 -108
  7. package/dist/chain-cursor-stores.d.ts.map +1 -1
  8. package/dist/chain-cursor-stores.js +11 -287
  9. package/dist/chain-cursor-stores.js.map +1 -1
  10. package/dist/chain-event-log-store.d.ts +10 -112
  11. package/dist/chain-event-log-store.d.ts.map +1 -1
  12. package/dist/chain-event-log-store.js +9 -360
  13. package/dist/chain-event-log-store.js.map +1 -1
  14. package/dist/chat-memory.d.ts +1 -0
  15. package/dist/chat-memory.d.ts.map +1 -1
  16. package/dist/chat-memory.js +31 -39
  17. package/dist/chat-memory.js.map +1 -1
  18. package/dist/chat-turn-subject.d.ts +18 -0
  19. package/dist/chat-turn-subject.d.ts.map +1 -0
  20. package/dist/chat-turn-subject.js +52 -0
  21. package/dist/chat-turn-subject.js.map +1 -0
  22. package/dist/db.d.ts +2 -143
  23. package/dist/db.d.ts.map +1 -1
  24. package/dist/db.js +9 -387
  25. package/dist/db.js.map +1 -1
  26. package/dist/index.d.ts +3 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +7 -3
  29. package/dist/index.js.map +1 -1
  30. package/dist/metrics-collector.d.ts +11 -1
  31. package/dist/metrics-collector.d.ts.map +1 -1
  32. package/dist/metrics-collector.js +77 -39
  33. package/dist/metrics-collector.js.map +1 -1
  34. package/dist/protocol-outbox-store.d.ts +9 -64
  35. package/dist/protocol-outbox-store.d.ts.map +1 -1
  36. package/dist/protocol-outbox-store.js +11 -198
  37. package/dist/protocol-outbox-store.js.map +1 -1
  38. package/dist-ui/assets/{3d-force-graph-CehOGxux.js → 3d-force-graph-DbVwxMKf.js} +1 -1
  39. package/dist-ui/assets/{ActivityFeed-BE4MTD8M.js → ActivityFeed-Bfg6fmQQ.js} +1 -1
  40. package/dist-ui/assets/{AgentHub-CT6UhLF2.js → AgentHub-DyF5Pa70.js} +1 -1
  41. package/dist-ui/assets/{AgentProfilePage-ygi-GXKM.js → AgentProfilePage-BPrSuKjV.js} +1 -1
  42. package/dist-ui/assets/{ApproveWalletsModal-YFfDrGth.js → ApproveWalletsModal-Dd_tHLRP.js} +1 -1
  43. package/dist-ui/assets/{ContextGraphPrimitives-Dh-w2D_i.js → ContextGraphPrimitives-BXormriD.js} +1 -1
  44. package/dist-ui/assets/{ConvictionDetailView-CfRmqqDD.js → ConvictionDetailView-BsPTd17P.js} +1 -1
  45. package/dist-ui/assets/{MemoryLayerView-DL0zLYAQ.js → MemoryLayerView-CloJeM33.js} +2 -2
  46. package/dist-ui/assets/{MemoryStackView-BsV_JnOe.js → MemoryStackView-BbUJ2uiM.js} +1 -1
  47. package/dist-ui/assets/{Network-BkxRENe4.js → Network-BKvJttOu.js} +1 -1
  48. package/dist-ui/assets/{OnChainProvenanceCard-CnnkMMNI.js → OnChainProvenanceCard-BV9-G1cT.js} +1 -1
  49. package/dist-ui/assets/{Operations-BaWWLSUw.js → Operations-LAhUQsnj.js} +1 -1
  50. package/dist-ui/assets/{ProjectView-BJmZ5f62.js → ProjectView-0zCSblAV.js} +3 -3
  51. package/dist-ui/assets/{PublishingConviction-CKB6JBYk.js → PublishingConviction-CF6352oT.js} +1 -1
  52. package/dist-ui/assets/{Settings-DXGMPiJk.js → Settings-runaZqPv.js} +1 -1
  53. package/dist-ui/assets/{browserWalletTransaction-BdmrJpK1.js → browserWalletTransaction-CBgx0i4w.js} +3 -3
  54. package/dist-ui/assets/{ccip-BNYiIkjs.js → ccip-BM07w5uU.js} +1 -1
  55. package/dist-ui/assets/{index-DOGXDQkQ.js → index-CfVUpsfM.js} +3 -3
  56. package/dist-ui/assets/{index-DK8XzE3T.js → index-MQh8C4aJ.js} +90 -90
  57. package/dist-ui/assets/index-xKO-U_eV.css +1 -0
  58. package/dist-ui/assets/{jsonld-32FQRO67-Ca-KnQfb.js → jsonld-32FQRO67-DBZOBQji.js} +2 -2
  59. package/dist-ui/assets/{jsonld-mRC9FbFR.js → jsonld-DOX7dKpf.js} +1 -1
  60. package/dist-ui/assets/{renderer-3d-2EVDZII7-AEMBPIY7.js → renderer-3d-2EVDZII7-CVCpAmwB.js} +2 -2
  61. package/dist-ui/assets/{shikiHighlighter-CUQ07vzt.js → shikiHighlighter-CzU2U2Tx.js} +1 -1
  62. package/dist-ui/assets/{useEntityOnChainReceipt-C8NHlPPN.js → useEntityOnChainReceipt-BvWQ6qdT.js} +1 -1
  63. package/dist-ui/assets/{useProjectActivity-CVFCfbMj.js → useProjectActivity-Cxr4QGX1.js} +1 -1
  64. package/dist-ui/index.html +2 -2
  65. package/package.json +6 -4
  66. package/dist-ui/assets/index-BLQUVvVz.css +0 -1
@@ -1,363 +1,12 @@
1
- const CHAIN_EVENT_LOG_ZERO_HASH = `0x${'00'.repeat(32)}`;
2
1
  /**
3
- * A tombstoned scope keeps its row so its CAS token can never repeat.
4
- *
5
- * The empty lineage is the tombstone: `load` refuses to return such a scope, so
6
- * nothing derived from the dead chain can be served, while a fresh cold start
7
- * re-initializes the SAME row at a strictly higher revision. Deleting the row
8
- * instead would restart the token at 1 and let a scanner holding the old token
9
- * overwrite a rebuilt log (the ABA case the authority index already guards).
2
+ * @deprecated Compatibility module. The chain-event log store moved to
3
+ * `@origintrail-official/dkg-node-store`; this file only keeps the deep import
4
+ * path `@origintrail-official/dkg-node-ui/dist/chain-event-log-store.js`
5
+ * resolving for downstream consumers that shipped against it (this package has
6
+ * no `exports` map, so `dist/*` is importable). First-party code imports
7
+ * `@origintrail-official/dkg-node-store` directly. Every runtime value and type
8
+ * the former module exported is forwarded, and each is the very same
9
+ * declaration node-store exports.
10
10
  */
11
- const TOMBSTONE_LINEAGE = '';
12
- function placeholders(count) {
13
- return Array.from({ length: count }, () => '?').join(', ');
14
- }
15
- /** The re-fetched range, or `undefined` when this commit replaces no tail. */
16
- function normalizeReplacedRange(range) {
17
- if (range === undefined)
18
- return undefined;
19
- if (!Number.isSafeInteger(range.fromBlockNumber)
20
- || !Number.isSafeInteger(range.throughBlockNumber)) {
21
- throw new Error('Chain event log replaced range is invalid');
22
- }
23
- // An empty range is a legitimate "this pass fetched nothing", not an error:
24
- // it simply replaces no tail.
25
- return range.throughBlockNumber < range.fromBlockNumber ? undefined : range;
26
- }
27
- // The indexes the reads below pin, all created by `DashboardDB`'s chain-log
28
- // schema. Without ANALYZE statistics the planner prefers the primary key's
29
- // block range for every one of these shapes (it also satisfies the ORDER BY)
30
- // and walks every row of every contract in the window, synchronously.
31
- /** `kaToContextGraph`: one address, one topic0, one topic2 (the KA id). */
32
- const KA_POINT_READ_INDEX = 'idx_chain_events_scope_address_ka';
33
- /** One graph's rows: one address, its topic0s, one topic1 (the graph id). */
34
- const GRAPH_READ_INDEX = 'idx_chain_events_scope_address_topic';
35
- /** Tail rows only (`settled = 0`): the reorg tail is a handful of blocks. */
36
- const TAIL_READ_INDEX = 'idx_chain_events_scope_unsettled';
37
- export class SqliteChainEventLogStore {
38
- db;
39
- /**
40
- * The pinnable indexes that exist. `INDEXED BY` turns a missing index into a
41
- * query ERROR, not a slower plan. `DashboardDB` creates them on every open it
42
- * migrates (the KA index best-effort), but a database written by a NEWER
43
- * schema is opened without migrating at all, so a hint is only used once its
44
- * index is known to be there.
45
- */
46
- indexes;
47
- constructor(dashboard) {
48
- this.db = dashboard.db;
49
- const present = this.db.prepare(`
50
- SELECT name FROM sqlite_master WHERE type = 'index' AND name IN (?, ?, ?)
51
- `).all(KA_POINT_READ_INDEX, GRAPH_READ_INDEX, TAIL_READ_INDEX);
52
- this.indexes = new Set(present.map((index) => index.name));
53
- }
54
- /**
55
- * The WHERE clause, its parameters and the index to pin for one filter.
56
- *
57
- * Hints are chosen for the exact shapes that have a better index than the
58
- * block range, and only then:
59
- * - the KA point read (four equalities on the KA index);
60
- * - one graph's rows (the per-graph ordinal reads and counts): address,
61
- * topic0 and topic1 equalities on the topic index, index-only for a count;
62
- * - a count of tail rows, walked from the unsettled index.
63
- */
64
- where(scope, filter) {
65
- const clauses = ['scope = ?', 'block_number >= ?', 'block_number <= ?'];
66
- const parameters = [scope, filter.fromBlockNumber, filter.throughBlockNumber];
67
- for (const [column, values] of [
68
- ['address', filter.addresses],
69
- ['topic0', filter.topic0],
70
- ['topic1', filter.topic1],
71
- ['topic2', filter.topic2],
72
- ]) {
73
- if (values === undefined || values.length === 0)
74
- continue;
75
- clauses.push(`${column} IN (${placeholders(values.length)})`);
76
- parameters.push(...values);
77
- }
78
- if (filter.settled !== undefined) {
79
- clauses.push('settled = ?');
80
- parameters.push(filter.settled ? 1 : 0);
81
- }
82
- const oneAddress = filter.addresses?.length === 1;
83
- const topic0s = filter.topic0?.length ?? 0;
84
- const topic1s = filter.topic1?.length ?? 0;
85
- const topic2s = filter.topic2?.length ?? 0;
86
- let index;
87
- if (filter.settled === false) {
88
- index = TAIL_READ_INDEX;
89
- }
90
- else if (oneAddress && topic0s === 1 && topic2s === 1) {
91
- // The KA point read (approach from PR #2784).
92
- index = KA_POINT_READ_INDEX;
93
- }
94
- else if (oneAddress && topic0s >= 1 && topic1s === 1 && topic2s === 0) {
95
- index = GRAPH_READ_INDEX;
96
- }
97
- return {
98
- clauses,
99
- parameters,
100
- indexHint: index !== undefined && this.indexes.has(index) ? ` INDEXED BY ${index}` : '',
101
- };
102
- }
103
- async load(scope) {
104
- const row = this.db.prepare(`
105
- SELECT revision, lineage, deployment_block, settled_block, settled_hash,
106
- head_block, head_hash, head_timestamp_seconds, head_fetched_at_ms,
107
- topic_set_version, suspected_fork_block
108
- FROM chain_index_cursor
109
- WHERE scope = ?
110
- `).get(scope);
111
- if (row === undefined || row.lineage === TOMBSTONE_LINEAGE)
112
- return undefined;
113
- const coverage = this.db.prepare(`
114
- SELECT family, address, covered_from_block, covered_through_block, floor_block
115
- FROM chain_index_coverage
116
- WHERE scope = ?
117
- ORDER BY family, address
118
- `).all(scope);
119
- return Object.freeze({
120
- cursor: Object.freeze({
121
- revision: row.revision,
122
- lineage: row.lineage,
123
- deploymentBlockNumber: row.deployment_block,
124
- settledBlockNumber: row.settled_block,
125
- settledBlockHash: row.settled_hash,
126
- head: Object.freeze({
127
- number: row.head_block,
128
- hash: row.head_hash,
129
- timestampSeconds: row.head_timestamp_seconds,
130
- fetchedAtMs: row.head_fetched_at_ms,
131
- }),
132
- topicSetVersion: row.topic_set_version,
133
- }),
134
- coverage: Object.freeze(coverage.map((entry) => Object.freeze({
135
- family: entry.family,
136
- address: entry.address,
137
- coveredFromBlock: entry.covered_from_block,
138
- coveredThroughBlock: entry.covered_through_block,
139
- floorBlock: entry.floor_block,
140
- }))),
141
- ...(row.suspected_fork_block === null
142
- ? {}
143
- : { suspectedForkBlockNumber: row.suspected_fork_block }),
144
- });
145
- }
146
- async commit(scope, expectedRevision, commit) {
147
- if (scope.trim().length === 0)
148
- throw new Error('Chain event log scope is empty');
149
- if (commit.cursor.lineage === TOMBSTONE_LINEAGE) {
150
- throw new Error('Chain event log lineage is empty');
151
- }
152
- if (expectedRevision !== undefined
153
- && (!Number.isSafeInteger(expectedRevision) || expectedRevision < 1)) {
154
- throw new Error('Chain event log expected revision is invalid');
155
- }
156
- const replaced = normalizeReplacedRange(commit.replacedRange);
157
- // A tail row outside the re-fetched range would be unreachable by any later
158
- // replacement, so it could only ever be dropped by a commit that did not
159
- // look at its block. Refusing here keeps the invariant a property of the
160
- // schema rather than of whoever wrote the caller.
161
- for (const row of commit.rows) {
162
- if (row.settled)
163
- continue;
164
- if (replaced !== undefined
165
- && row.blockNumber >= replaced.fromBlockNumber
166
- && row.blockNumber <= replaced.throughBlockNumber) {
167
- continue;
168
- }
169
- throw new Error('Chain event log tail row falls outside the replaced range');
170
- }
171
- const apply = this.db.transaction(() => {
172
- const revision = this.writeCursor(scope, expectedRevision, commit);
173
- if (revision === undefined)
174
- return undefined;
175
- // The previous tail goes first, but ONLY inside the range this commit
176
- // re-fetched. Coverage never shrinks, so deleting a tail block this pass
177
- // did not look at would leave coverage claiming a range whose rows are
178
- // gone — and a read over that range would answer "no such event".
179
- if (replaced !== undefined) {
180
- this.db.prepare(`
181
- DELETE FROM chain_events
182
- WHERE scope = ? AND settled = 0
183
- AND block_number >= ? AND block_number <= ?
184
- `).run(scope, replaced.fromBlockNumber, replaced.throughBlockNumber);
185
- }
186
- const insert = this.db.prepare(`
187
- INSERT OR IGNORE INTO chain_events (
188
- scope, block_number, log_index, block_hash, tx_hash, address,
189
- topic0, topic1, topic2, topic3, data, settled
190
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
191
- `);
192
- for (const row of commit.rows) {
193
- // OR IGNORE, not OR REPLACE: a settled row is written ONCE. A second
194
- // write at the same (block, logIndex) would mean the settled prefix was
195
- // re-fetched, which only a reorg below the tail can cause — and that is
196
- // the tombstone's job, not a silent overwrite's.
197
- insert.run(scope, row.blockNumber, row.logIndex, row.blockHash, row.transactionHash, row.address, row.topics[0] ?? '', row.topics[1] ?? null, row.topics[2] ?? null, row.topics[3] ?? null, row.data, row.settled ? 1 : 0);
198
- }
199
- const upsertCoverage = this.db.prepare(`
200
- INSERT INTO chain_index_coverage (
201
- scope, family, address, covered_from_block, covered_through_block,
202
- floor_block, updated_at
203
- ) VALUES (?, ?, ?, ?, ?, ?, ?)
204
- ON CONFLICT(scope, family, address) DO UPDATE SET
205
- covered_from_block = excluded.covered_from_block,
206
- covered_through_block = excluded.covered_through_block,
207
- floor_block = excluded.floor_block,
208
- updated_at = excluded.updated_at
209
- `);
210
- for (const entry of commit.coverage) {
211
- upsertCoverage.run(scope, entry.family, entry.address, entry.coveredFromBlock, entry.coveredThroughBlock, entry.floorBlock, Date.now());
212
- }
213
- return revision;
214
- });
215
- return apply();
216
- }
217
- async tombstone(scope, expectedRevision) {
218
- if (!Number.isSafeInteger(expectedRevision) || expectedRevision < 1) {
219
- throw new Error('Chain event log expected revision is invalid');
220
- }
221
- const nextRevision = expectedRevision + 1;
222
- if (!Number.isSafeInteger(nextRevision)) {
223
- throw new Error('Chain event log revision exceeds the safe integer range');
224
- }
225
- const apply = this.db.transaction(() => {
226
- const invalidated = this.db.prepare(`
227
- UPDATE chain_index_cursor
228
- SET revision = ?, lineage = ?, settled_block = -1, settled_hash = '',
229
- suspected_fork_block = NULL, updated_at = ?
230
- WHERE scope = ? AND revision = ?
231
- `).run(nextRevision, TOMBSTONE_LINEAGE, Date.now(), scope, expectedRevision).changes === 1;
232
- if (!invalidated)
233
- return undefined;
234
- // Everything derived from the dead chain goes with the cursor. A single
235
- // surviving "permanent memo" is enough to answer an id-reuse question
236
- // from a chain that no longer exists.
237
- for (const table of [
238
- 'chain_events',
239
- 'chain_index_coverage',
240
- ]) {
241
- this.db.prepare(`DELETE FROM ${table} WHERE scope = ?`).run(scope);
242
- }
243
- return nextRevision;
244
- });
245
- return apply();
246
- }
247
- async readEvents(scope, query) {
248
- // Reads never narrow by `settled`: callers filter the tail themselves.
249
- const { clauses, parameters, indexHint } = this.where(scope, { ...query, settled: undefined });
250
- const rows = this.db.prepare(`
251
- SELECT block_number, log_index, block_hash, tx_hash, address,
252
- topic0, topic1, topic2, topic3, data, settled
253
- FROM chain_events${indexHint}
254
- WHERE ${clauses.join(' AND ')}
255
- ORDER BY block_number, log_index
256
- `).all(...parameters);
257
- return Object.freeze(rows.map((row) => Object.freeze({
258
- blockNumber: row.block_number,
259
- blockHash: row.block_hash,
260
- logIndex: row.log_index,
261
- transactionHash: row.tx_hash,
262
- address: row.address,
263
- // Absent topics are omitted rather than zero-filled: a decoder must see
264
- // the log's real arity, not a padded one.
265
- topics: Object.freeze([row.topic0, row.topic1, row.topic2, row.topic3]
266
- .filter((topic) => typeof topic === 'string' && topic.length > 0)),
267
- data: row.data,
268
- settled: row.settled === 1,
269
- })));
270
- }
271
- /**
272
- * `COUNT(*)` of exactly what {@link readEvents} returns for `query`, narrowed
273
- * by `settled` when given, without building a row. For one graph's rows the
274
- * count is index-only (~2 ms over 30k registrations); for tail rows it walks
275
- * the unsettled index, i.e. the reorg tail.
276
- */
277
- async countEvents(scope, query) {
278
- const { clauses, parameters, indexHint } = this.where(scope, query);
279
- const row = this.db.prepare(`
280
- SELECT COUNT(*) AS count FROM chain_events${indexHint} WHERE ${clauses.join(' AND ')}
281
- `).get(...parameters);
282
- return row.count;
283
- }
284
- async blockHashAt(scope, blockNumber) {
285
- const cursor = this.db.prepare(`
286
- SELECT settled_block, settled_hash, head_block, head_hash
287
- FROM chain_index_cursor
288
- WHERE scope = ? AND lineage <> ?
289
- `).get(scope, TOMBSTONE_LINEAGE);
290
- if (cursor?.settled_block === blockNumber
291
- && cursor.settled_hash.length > 0
292
- && cursor.settled_hash !== CHAIN_EVENT_LOG_ZERO_HASH) {
293
- return cursor.settled_hash;
294
- }
295
- if (cursor?.head_block === blockNumber)
296
- return cursor.head_hash;
297
- const row = this.db.prepare(`
298
- SELECT block_hash FROM chain_events
299
- WHERE scope = ? AND block_number = ?
300
- LIMIT 1
301
- `).get(scope, blockNumber);
302
- return row?.block_hash;
303
- }
304
- writeCursor(scope, expectedRevision, commit) {
305
- const cursor = commit.cursor;
306
- const suspected = commit.suspectedForkBlockNumber ?? null;
307
- const now = Date.now();
308
- if (expectedRevision === undefined) {
309
- const inserted = this.db.prepare(`
310
- INSERT INTO chain_index_cursor (
311
- scope, revision, lineage, deployment_block, settled_block, settled_hash,
312
- head_block, head_hash, head_timestamp_seconds, head_fetched_at_ms,
313
- topic_set_version, suspected_fork_block, updated_at
314
- ) VALUES (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
315
- ON CONFLICT(scope) DO UPDATE SET
316
- revision = chain_index_cursor.revision + 1,
317
- lineage = excluded.lineage,
318
- deployment_block = excluded.deployment_block,
319
- settled_block = excluded.settled_block,
320
- settled_hash = excluded.settled_hash,
321
- head_block = excluded.head_block,
322
- head_hash = excluded.head_hash,
323
- head_timestamp_seconds = excluded.head_timestamp_seconds,
324
- head_fetched_at_ms = excluded.head_fetched_at_ms,
325
- topic_set_version = excluded.topic_set_version,
326
- suspected_fork_block = excluded.suspected_fork_block,
327
- updated_at = excluded.updated_at
328
- -- Re-initializing is allowed ONLY for a tombstoned scope. A live cursor
329
- -- must lose this CAS, so a caller that thinks the scope is cold cannot
330
- -- reset a cursor another pass is advancing.
331
- WHERE chain_index_cursor.lineage = ''
332
- `).run(scope, cursor.lineage, cursor.deploymentBlockNumber, cursor.settledBlockNumber, cursor.settledBlockHash, cursor.head.number, cursor.head.hash, cursor.head.timestampSeconds, cursor.head.fetchedAtMs, cursor.topicSetVersion, suspected, now).changes === 1;
333
- if (!inserted)
334
- return undefined;
335
- return this.db.prepare(`SELECT revision FROM chain_index_cursor WHERE scope = ?`)
336
- .get(scope).revision;
337
- }
338
- const nextRevision = expectedRevision + 1;
339
- if (!Number.isSafeInteger(nextRevision)) {
340
- throw new Error('Chain event log revision exceeds the safe integer range');
341
- }
342
- // STICKY. A suspicion is the tick's only memory between two passes, so a
343
- // commit that says nothing about forks — a backfill page, an idle head
344
- // refresh — must leave the held one alone. Writing NULL here is what let a
345
- // backfill between two mismatching passes reset the two-pass rule forever.
346
- const suspectedClause = commit.clearsForkSuspicion === true
347
- ? 'NULL'
348
- : commit.suspectedForkBlockNumber === undefined
349
- ? 'suspected_fork_block'
350
- : '?';
351
- const updated = this.db.prepare(`
352
- UPDATE chain_index_cursor
353
- SET revision = ?, lineage = ?, deployment_block = ?, settled_block = ?,
354
- settled_hash = ?, head_block = ?, head_hash = ?,
355
- head_timestamp_seconds = ?, head_fetched_at_ms = ?,
356
- topic_set_version = ?, suspected_fork_block = ${suspectedClause},
357
- updated_at = ?
358
- WHERE scope = ? AND revision = ? AND lineage <> ''
359
- `).run(nextRevision, cursor.lineage, cursor.deploymentBlockNumber, cursor.settledBlockNumber, cursor.settledBlockHash, cursor.head.number, cursor.head.hash, cursor.head.timestampSeconds, cursor.head.fetchedAtMs, cursor.topicSetVersion, ...(suspectedClause === '?' ? [suspected] : []), now, scope, expectedRevision).changes === 1;
360
- return updated ? nextRevision : undefined;
361
- }
362
- }
11
+ export { SqliteChainEventLogStore } from '@origintrail-official/dkg-node-store';
363
12
  //# sourceMappingURL=chain-event-log-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-event-log-store.js","sourceRoot":"","sources":["../src/chain-event-log-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain-event-log-store.js","sourceRoot":"","sources":["../src/chain-event-log-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -219,6 +219,7 @@ export declare class ChatMemoryManager {
219
219
  }): Promise<void>;
220
220
  hasChatTurn(sessionId: string, turnId: string): Promise<boolean>;
221
221
  getChatTurnPersistenceState(sessionId: string, turnId: string): Promise<ChatTurnPersistenceState | null>;
222
+ private findExistingChatTurn;
222
223
  recordChatTurnPersistenceTransition(sessionId: string, turnId: string, persistenceState: ChatTurnPersistenceState, opts?: {
223
224
  failureReason?: string | null;
224
225
  assistantReply?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-memory.d.ts","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-memory.d.ts","sourceRoot":"","sources":["../src/chat-memory.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { chatTurnSubjectPattern, scopedChatTurnUri, decodeExistingChatTurn } from './chat-turn-subject.js';
1
2
  import { isSafeIri } from '@origintrail-official/dkg-core';
2
3
  import { LlmClient } from './llm/client.js';
3
4
  import { decodeRdfStringLiteral } from './rdf-literal.js';
@@ -412,7 +413,7 @@ export class ChatMemoryManager {
412
413
  const failureReason = typeof opts?.failureReason === 'string'
413
414
  ? opts.failureReason.trim()
414
415
  : (opts?.failureReason === null ? null : undefined);
415
- const turnUri = turnId ? `${CHAT_NS}turn:${turnId}` : undefined;
416
+ const turnUri = turnId ? (await this.findExistingChatTurn(sessionId, turnId))?.uri ?? scopedChatTurnUri(sessionId, turnId) : undefined;
416
417
  const isNewSession = !this.knownSessions.has(sessionId);
417
418
  const quads = [];
418
419
  // Only declare the session entity on the first exchange to avoid
@@ -456,9 +457,7 @@ export class ChatMemoryManager {
456
457
  return false;
457
458
  const sessionUri = `${CHAT_NS}session:${sessionId}`;
458
459
  const result = await this.tools.query(`SELECT ?turn WHERE {
459
- ?turn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
460
- ?turn <${SCHEMA}isPartOf> <${sessionUri}> .
461
- ?turn <${DKG_ONT}turnId> ${JSON.stringify(trimmedTurnId)} .
460
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', JSON.stringify(trimmedTurnId))}
462
461
  } LIMIT 1`, this.wmReadOpts());
463
462
  return (result.bindings ?? []).length > 0;
464
463
  }
@@ -469,9 +468,7 @@ export class ChatMemoryManager {
469
468
  return null;
470
469
  const sessionUri = `${CHAT_NS}session:${sessionId}`;
471
470
  const result = await this.tools.query(`SELECT ?persistenceState ?transitionState WHERE {
472
- ?turn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
473
- ?turn <${SCHEMA}isPartOf> <${sessionUri}> .
474
- ?turn <${DKG_ONT}turnId> ${JSON.stringify(trimmedTurnId)} .
471
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', JSON.stringify(trimmedTurnId))}
475
472
  OPTIONAL { ?turn <${DKG_ONT}persistenceState> ?persistenceState }
476
473
  OPTIONAL {
477
474
  ?transition <${RDF_TYPE}> <${CHAT_TURN_PERSISTENCE_TRANSITION_TYPE}> .
@@ -492,13 +489,22 @@ export class ChatMemoryManager {
492
489
  return 'pending';
493
490
  return null;
494
491
  }
492
+ async findExistingChatTurn(sessionId, turnId) {
493
+ const sessionUri = `${CHAT_NS}session:${sessionId}`;
494
+ const result = await this.tools.query(`SELECT ?turn ?tid ?ts WHERE {
495
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', JSON.stringify(turnId))}
496
+ ?turn <${DKG_ONT}turnId> ?tid .
497
+ OPTIONAL { ?turn <${SCHEMA}dateCreated> ?ts }
498
+ } ORDER BY ?turn LIMIT 1`, this.wmReadOpts());
499
+ return decodeExistingChatTurn(result.bindings?.[0], turnId, stripRdfLiteral);
500
+ }
495
501
  async recordChatTurnPersistenceTransition(sessionId, turnId, persistenceState, opts) {
496
502
  await this.ensureInitialized();
497
503
  const trimmedTurnId = turnId.trim();
498
504
  if (!trimmedTurnId)
499
505
  return;
500
506
  const transitionId = crypto.randomUUID().slice(0, 8);
501
- const turnUri = `${CHAT_NS}turn:${trimmedTurnId}`;
507
+ const turnUri = (await this.findExistingChatTurn(sessionId, trimmedTurnId))?.uri ?? scopedChatTurnUri(sessionId, trimmedTurnId);
502
508
  const transitionUri = `${CHAT_NS}turn-transition:${transitionId}`;
503
509
  const now = new Date().toISOString();
504
510
  const failureReason = typeof opts?.failureReason === 'string'
@@ -760,9 +766,7 @@ export class ChatMemoryManager {
760
766
  OPTIONAL { ?m <${DKG_ONT}turnId> ?turnId }
761
767
  OPTIONAL { ?m <${CHAT_ATTACHMENT_REFS_PREDICATE}> ?attachmentRefs }
762
768
  OPTIONAL {
763
- ?turn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
764
- ?turn <${SCHEMA}isPartOf> <${sessionUri}> .
765
- ?turn <${DKG_ONT}turnId> ?turnId .
769
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', '?turnId')}
766
770
  OPTIONAL { ?turn <${DKG_ONT}persistenceState> ?persistenceState }
767
771
  OPTIONAL { ?turn <${DKG_ONT}failureReason> ?failureReason }
768
772
  OPTIONAL {
@@ -902,9 +906,8 @@ export class ChatMemoryManager {
902
906
  await this.ensureInitialized();
903
907
  const sessionUri = `${CHAT_NS}session:${sessionId}`;
904
908
  const baseTurnId = opts?.baseTurnId?.trim() || null;
905
- const countResult = await this.tools.query(`SELECT (COUNT(*) AS ?c) WHERE {
906
- ?turn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
907
- ?turn <${SCHEMA}isPartOf> <${sessionUri}> .
909
+ const countResult = await this.tools.query(`SELECT (COUNT(DISTINCT ?tid) AS ?c) WHERE {
910
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', '?tid')}
908
911
  }`, this.wmReadOpts());
909
912
  const turnCount = sumBindingValues(countResult.bindings, 'c');
910
913
  if (turnCount === 0) {
@@ -924,24 +927,13 @@ export class ChatMemoryManager {
924
927
  triples: [],
925
928
  };
926
929
  }
927
- const turnUri = `${CHAT_NS}turn:${turnId}`;
928
- const currentTurnResult = await this.tools.query(`SELECT ?tid ?ts WHERE {
929
- <${turnUri}> <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
930
- <${turnUri}> <${SCHEMA}isPartOf> <${sessionUri}> .
931
- <${turnUri}> <${DKG_ONT}turnId> ?tid .
932
- OPTIONAL { <${turnUri}> <${SCHEMA}dateCreated> ?ts }
933
- } LIMIT 1`, this.wmReadOpts());
934
- const currentTurn = (currentTurnResult.bindings ?? [])[0];
935
- const currentTurnId = stripRdfLiteral(currentTurn?.tid ?? '').trim();
936
- const currentTurnTs = stripRdfLiteral(currentTurn?.ts ?? '').trim();
930
+ const currentTurn = await this.findExistingChatTurn(sessionId, turnId);
937
931
  const latestTurnResult = await this.tools.query(`SELECT ?latestTurnId ?latestTs WHERE {
938
- ?latestTurn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
939
- ?latestTurn <${SCHEMA}isPartOf> <${sessionUri}> .
940
- ?latestTurn <${DKG_ONT}turnId> ?latestTurnId .
932
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?latestTurn', '?latestTurnId')}
941
933
  OPTIONAL { ?latestTurn <${SCHEMA}dateCreated> ?latestTs }
942
934
  } ORDER BY DESC(?latestTs) DESC(?latestTurnId) LIMIT 1`, this.wmReadOpts());
943
935
  const latestTurnId = stripRdfLiteral((latestTurnResult.bindings ?? [])[0]?.latestTurnId ?? '').trim() || null;
944
- if (!currentTurnId || currentTurnId !== turnId) {
936
+ if (!currentTurn) {
945
937
  return {
946
938
  mode: 'full_refresh_required',
947
939
  reason: 'turn_not_found',
@@ -958,15 +950,15 @@ export class ChatMemoryManager {
958
950
  triples: [],
959
951
  };
960
952
  }
953
+ const { uri: turnUri, turnId: currentTurnId, createdAt: currentTurnTs } = currentTurn;
961
954
  const currentTurnIdLiteral = JSON.stringify(currentTurnId);
962
955
  const currentTsLiteral = currentTurnTs
963
956
  ? `"${currentTurnTs}"^^<${XSD_DATETIME}>`
964
957
  : null;
965
958
  const previousTurnQuery = currentTsLiteral
966
959
  ? `SELECT ?previousTurnId WHERE {
967
- ?previousTurn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
968
- ?previousTurn <${SCHEMA}isPartOf> <${sessionUri}> .
969
- ?previousTurn <${DKG_ONT}turnId> ?previousTurnId .
960
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?previousTurn', '?previousTurnId')}
961
+ FILTER(?previousTurnId != ${currentTurnIdLiteral})
970
962
  ?previousTurn <${SCHEMA}dateCreated> ?previousTs .
971
963
  FILTER(
972
964
  ?previousTs < ${currentTsLiteral}
@@ -974,25 +966,25 @@ export class ChatMemoryManager {
974
966
  )
975
967
  } ORDER BY DESC(?previousTs) DESC(?previousTurnId) LIMIT 1`
976
968
  : `SELECT ?previousTurnId WHERE {
977
- ?previousTurn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
978
- ?previousTurn <${SCHEMA}isPartOf> <${sessionUri}> .
979
- ?previousTurn <${DKG_ONT}turnId> ?previousTurnId .
969
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?previousTurn', '?previousTurnId')}
970
+ FILTER(?previousTurnId != ${currentTurnIdLiteral})
980
971
  FILTER(?previousTurnId < ${currentTurnIdLiteral})
981
972
  } ORDER BY DESC(?previousTurnId) LIMIT 1`;
982
973
  const previousTurnResult = await this.tools.query(previousTurnQuery, this.wmReadOpts());
983
974
  const previousTurnId = stripRdfLiteral((previousTurnResult.bindings ?? [])[0]?.previousTurnId ?? '').trim() || null;
984
975
  const turnIndexResult = currentTsLiteral
985
- ? await this.tools.query(`SELECT (COUNT(*) AS ?c) WHERE {
986
- ?turn <${RDF_TYPE}> <${DKG_ONT}ChatTurn> .
987
- ?turn <${SCHEMA}isPartOf> <${sessionUri}> .
988
- ?turn <${DKG_ONT}turnId> ?tid .
976
+ ? await this.tools.query(`SELECT (COUNT(DISTINCT ?tid) AS ?c) WHERE {
977
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', '?tid')}
989
978
  ?turn <${SCHEMA}dateCreated> ?ts .
990
979
  FILTER(
991
980
  ?ts < ${currentTsLiteral}
992
981
  || (?ts = ${currentTsLiteral} && ?tid <= ${currentTurnIdLiteral})
993
982
  )
994
983
  }`, this.wmReadOpts())
995
- : { bindings: [{ c: String(previousTurnId ? 2 : 1) }] };
984
+ : await this.tools.query(`SELECT (COUNT(DISTINCT ?tid) AS ?c) WHERE {
985
+ ${chatTurnSubjectPattern(`<${sessionUri}>`, '?turn', '?tid')}
986
+ FILTER(?tid <= ${currentTurnIdLiteral})
987
+ }`, this.wmReadOpts());
996
988
  const turnIndex = Math.max(0, sumBindingValues(turnIndexResult.bindings, 'c'));
997
989
  if (previousTurnId && !baseTurnId) {
998
990
  return {