@askdkc/kiokuko 0.1.9 → 0.1.10

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 (62) hide show
  1. package/dist/akinator/service.d.ts.map +1 -1
  2. package/dist/akinator/service.js +2 -1
  3. package/dist/akinator/service.js.map +1 -1
  4. package/dist/commands/doctor.d.ts +5 -0
  5. package/dist/commands/doctor.d.ts.map +1 -1
  6. package/dist/commands/doctor.js +57 -2
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/export.d.ts.map +1 -1
  9. package/dist/commands/export.js +11 -5
  10. package/dist/commands/export.js.map +1 -1
  11. package/dist/commands/import.d.ts.map +1 -1
  12. package/dist/commands/import.js +37 -10
  13. package/dist/commands/import.js.map +1 -1
  14. package/dist/context/broker.d.ts.map +1 -1
  15. package/dist/context/broker.js +7 -3
  16. package/dist/context/broker.js.map +1 -1
  17. package/dist/context/delivery.d.ts.map +1 -1
  18. package/dist/context/delivery.js +12 -8
  19. package/dist/context/delivery.js.map +1 -1
  20. package/dist/knowledge/sources.js +1 -1
  21. package/dist/knowledge/sources.js.map +1 -1
  22. package/dist/ledger/archive.d.ts.map +1 -1
  23. package/dist/ledger/archive.js +14 -6
  24. package/dist/ledger/archive.js.map +1 -1
  25. package/dist/ledger/maintenance.js +4 -4
  26. package/dist/ledger/maintenance.js.map +1 -1
  27. package/dist/ledger/promotion.d.ts.map +1 -1
  28. package/dist/ledger/promotion.js +6 -4
  29. package/dist/ledger/promotion.js.map +1 -1
  30. package/dist/memory/curator.d.ts.map +1 -1
  31. package/dist/memory/curator.js +6 -5
  32. package/dist/memory/curator.js.map +1 -1
  33. package/dist/memory/entries.d.ts.map +1 -1
  34. package/dist/memory/entries.js +72 -31
  35. package/dist/memory/entries.js.map +1 -1
  36. package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
  37. package/dist/memory/hybrid-retrieval.js +11 -5
  38. package/dist/memory/hybrid-retrieval.js.map +1 -1
  39. package/dist/memory/lifecycle.js +6 -6
  40. package/dist/memory/lifecycle.js.map +1 -1
  41. package/dist/memory/rebuild-search.d.ts.map +1 -1
  42. package/dist/memory/rebuild-search.js +26 -7
  43. package/dist/memory/rebuild-search.js.map +1 -1
  44. package/dist/memory/retrieval.d.ts.map +1 -1
  45. package/dist/memory/retrieval.js +9 -7
  46. package/dist/memory/retrieval.js.map +1 -1
  47. package/dist/memory/revisions.d.ts +44 -0
  48. package/dist/memory/revisions.d.ts.map +1 -0
  49. package/dist/memory/revisions.js +122 -0
  50. package/dist/memory/revisions.js.map +1 -0
  51. package/dist/memory/structured-memory.d.ts +2 -0
  52. package/dist/memory/structured-memory.d.ts.map +1 -1
  53. package/dist/memory/structured-memory.js +28 -0
  54. package/dist/memory/structured-memory.js.map +1 -1
  55. package/dist/web/server.js +7 -7
  56. package/dist/web/server.js.map +1 -1
  57. package/migrations/001_initial.sql +51 -17
  58. package/migrations/002_fts.sql +13 -57
  59. package/migrations/004_agent_gateway.sql +4 -2
  60. package/migrations/005_hybrid_search.sql +16 -61
  61. package/migrations/007_akinator_reasoning.sql +4 -3
  62. package/package.json +1 -1
@@ -1,6 +1,5 @@
1
- -- Additive hybrid-search projections. The original entries_fts index remains
2
- -- intact so databases can be upgraded and rolled back without losing the v1
3
- -- lexical search path.
1
+ -- Current-revision hybrid-search projections. Historical revisions are never
2
+ -- indexed; application code refreshes these projections after each mutation.
4
3
  CREATE VIRTUAL TABLE entries_trigram USING fts5(
5
4
  title,
6
5
  body,
@@ -22,64 +21,20 @@ CREATE TABLE entry_search_signals (
22
21
  CREATE INDEX idx_entry_search_signals_lookup
23
22
  ON entry_search_signals(signal_type, normalized_value);
24
23
 
25
- CREATE TRIGGER entries_trigram_ai AFTER INSERT ON entries BEGIN
26
- INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
27
- VALUES (
28
- new.rowid,
29
- new.title,
30
- new.body,
31
- COALESCE(new.summary, ''),
32
- COALESCE((SELECT group_concat(tag, ' ') FROM tags WHERE entry_id = new.id), '')
33
- );
34
- END;
35
-
36
- CREATE TRIGGER entries_trigram_ad AFTER DELETE ON entries BEGIN
37
- DELETE FROM entries_trigram WHERE rowid = old.rowid;
38
- END;
39
-
40
- CREATE TRIGGER entries_trigram_au AFTER UPDATE ON entries BEGIN
41
- DELETE FROM entries_trigram WHERE rowid = old.rowid;
42
- INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
43
- VALUES (
44
- new.rowid,
45
- new.title,
46
- new.body,
47
- COALESCE(new.summary, ''),
48
- COALESCE((SELECT group_concat(tag, ' ') FROM tags WHERE entry_id = new.id), '')
49
- );
50
- END;
51
-
52
- CREATE TRIGGER tags_trigram_ai AFTER INSERT ON tags BEGIN
53
- DELETE FROM entries_trigram WHERE rowid = (SELECT rowid FROM entries WHERE id = new.entry_id);
54
- INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
55
- SELECT entries.rowid, entries.title, entries.body, COALESCE(entries.summary, ''),
56
- COALESCE((SELECT group_concat(tag, ' ') FROM tags WHERE entry_id = entries.id), '')
57
- FROM entries WHERE entries.id = new.entry_id;
58
- END;
59
-
60
- CREATE TRIGGER tags_trigram_ad AFTER DELETE ON tags BEGIN
61
- DELETE FROM entries_trigram WHERE rowid = (SELECT rowid FROM entries WHERE id = old.entry_id);
62
- INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
63
- SELECT entries.rowid, entries.title, entries.body, COALESCE(entries.summary, ''),
64
- COALESCE((SELECT group_concat(tag, ' ') FROM tags WHERE entry_id = entries.id), '')
65
- FROM entries WHERE entries.id = old.entry_id;
66
- END;
67
-
68
- CREATE TRIGGER tags_trigram_au AFTER UPDATE OF tag ON tags BEGIN
69
- DELETE FROM entries_trigram WHERE rowid = (SELECT rowid FROM entries WHERE id = old.entry_id);
70
- INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
71
- SELECT entries.rowid, entries.title, entries.body, COALESCE(entries.summary, ''),
72
- COALESCE((SELECT group_concat(tag, ' ') FROM tags WHERE entry_id = entries.id), '')
73
- FROM entries WHERE entries.id = new.entry_id;
74
- END;
75
-
76
24
  INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
77
- SELECT entries.rowid,
78
- entries.title,
79
- entries.body,
80
- COALESCE(entries.summary, ''),
81
- COALESCE((SELECT group_concat(tag, ' ') FROM tags WHERE entry_id = entries.id), '')
82
- FROM entries;
25
+ SELECT e.rowid,
26
+ r.title,
27
+ r.body,
28
+ COALESCE(r.summary, ''),
29
+ COALESCE((SELECT group_concat(tag, ' ')
30
+ FROM entry_revision_tags
31
+ WHERE entry_id = e.id AND revision = e.current_revision), '')
32
+ FROM entries AS e
33
+ JOIN entry_revisions AS r
34
+ ON r.entry_id = e.id AND r.revision = e.current_revision;
83
35
 
84
36
  INSERT INTO entry_search_signals(entry_id, signal_type, normalized_value)
85
- SELECT entry_id, 'tag', lower(trim(tag)) FROM tags WHERE length(trim(tag)) > 0;
37
+ SELECT t.entry_id, 'tag', lower(trim(t.tag))
38
+ FROM entry_revision_tags AS t
39
+ JOIN entries AS e ON e.id = t.entry_id AND e.current_revision = t.revision
40
+ WHERE length(trim(t.tag)) > 0;
@@ -50,9 +50,10 @@ BEGIN
50
50
  AND a.workspace = NEW.workspace
51
51
  ) OR NOT EXISTS (
52
52
  SELECT 1
53
- FROM entries AS e
53
+ FROM entries AS e
54
+ JOIN entry_revisions AS er
55
+ ON er.entry_id = e.id AND er.revision = NEW.entry_revision
54
56
  WHERE e.id = NEW.entry_id
55
- AND e.revision = NEW.entry_revision
56
- AND e.workspace IN (NEW.workspace, 'global')
57
+ AND er.workspace IN (NEW.workspace, 'global')
57
58
  );
58
59
  END;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdkc/kiokuko",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Model-agnostic external memory for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {