@askdkc/kiokuko 0.1.8 → 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 (95) hide show
  1. package/README.ja.md +17 -10
  2. package/README.ko.md +16 -9
  3. package/README.md +45 -19
  4. package/README.zh-CN.md +16 -9
  5. package/dist/akinator/capabilities.d.ts.map +1 -1
  6. package/dist/akinator/capabilities.js +22 -8
  7. package/dist/akinator/capabilities.js.map +1 -1
  8. package/dist/akinator/service.d.ts.map +1 -1
  9. package/dist/akinator/service.js +2 -1
  10. package/dist/akinator/service.js.map +1 -1
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +5 -0
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/doctor.d.ts +5 -0
  15. package/dist/commands/doctor.d.ts.map +1 -1
  16. package/dist/commands/doctor.js +57 -2
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/export.d.ts.map +1 -1
  19. package/dist/commands/export.js +11 -5
  20. package/dist/commands/export.js.map +1 -1
  21. package/dist/commands/import.d.ts.map +1 -1
  22. package/dist/commands/import.js +37 -10
  23. package/dist/commands/import.js.map +1 -1
  24. package/dist/commands/setup.d.ts +3 -1
  25. package/dist/commands/setup.d.ts.map +1 -1
  26. package/dist/commands/setup.js +30 -6
  27. package/dist/commands/setup.js.map +1 -1
  28. package/dist/config/paths.d.ts +5 -0
  29. package/dist/config/paths.d.ts.map +1 -1
  30. package/dist/config/paths.js +20 -0
  31. package/dist/config/paths.js.map +1 -1
  32. package/dist/context/broker.d.ts.map +1 -1
  33. package/dist/context/broker.js +7 -3
  34. package/dist/context/broker.js.map +1 -1
  35. package/dist/context/delivery.d.ts.map +1 -1
  36. package/dist/context/delivery.js +12 -8
  37. package/dist/context/delivery.js.map +1 -1
  38. package/dist/knowledge/sources.js +1 -1
  39. package/dist/knowledge/sources.js.map +1 -1
  40. package/dist/ledger/archive.d.ts.map +1 -1
  41. package/dist/ledger/archive.js +14 -6
  42. package/dist/ledger/archive.js.map +1 -1
  43. package/dist/ledger/maintenance.js +4 -4
  44. package/dist/ledger/maintenance.js.map +1 -1
  45. package/dist/ledger/promotion.d.ts.map +1 -1
  46. package/dist/ledger/promotion.js +6 -4
  47. package/dist/ledger/promotion.js.map +1 -1
  48. package/dist/memory/curator.d.ts +1 -0
  49. package/dist/memory/curator.d.ts.map +1 -1
  50. package/dist/memory/curator.js +34 -18
  51. package/dist/memory/curator.js.map +1 -1
  52. package/dist/memory/entries.d.ts.map +1 -1
  53. package/dist/memory/entries.js +72 -31
  54. package/dist/memory/entries.js.map +1 -1
  55. package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
  56. package/dist/memory/hybrid-retrieval.js +11 -5
  57. package/dist/memory/hybrid-retrieval.js.map +1 -1
  58. package/dist/memory/lifecycle.js +6 -6
  59. package/dist/memory/lifecycle.js.map +1 -1
  60. package/dist/memory/rebuild-search.d.ts.map +1 -1
  61. package/dist/memory/rebuild-search.js +26 -7
  62. package/dist/memory/rebuild-search.js.map +1 -1
  63. package/dist/memory/retrieval.d.ts.map +1 -1
  64. package/dist/memory/retrieval.js +9 -7
  65. package/dist/memory/retrieval.js.map +1 -1
  66. package/dist/memory/revisions.d.ts +44 -0
  67. package/dist/memory/revisions.d.ts.map +1 -0
  68. package/dist/memory/revisions.js +122 -0
  69. package/dist/memory/revisions.js.map +1 -0
  70. package/dist/memory/structured-memory.d.ts +2 -0
  71. package/dist/memory/structured-memory.d.ts.map +1 -1
  72. package/dist/memory/structured-memory.js +28 -0
  73. package/dist/memory/structured-memory.js.map +1 -1
  74. package/dist/setup/standard-skills.d.ts +13 -0
  75. package/dist/setup/standard-skills.d.ts.map +1 -0
  76. package/dist/setup/standard-skills.js +42 -0
  77. package/dist/setup/standard-skills.js.map +1 -0
  78. package/dist/web/i18n.d.ts +11 -1
  79. package/dist/web/i18n.d.ts.map +1 -1
  80. package/dist/web/i18n.js +44 -4
  81. package/dist/web/i18n.js.map +1 -1
  82. package/dist/web/server.d.ts.map +1 -1
  83. package/dist/web/server.js +12 -10
  84. package/dist/web/server.js.map +1 -1
  85. package/dist/web/ui.d.ts.map +1 -1
  86. package/dist/web/ui.js +170 -32
  87. package/dist/web/ui.js.map +1 -1
  88. package/migrations/001_initial.sql +51 -17
  89. package/migrations/002_fts.sql +13 -57
  90. package/migrations/004_agent_gateway.sql +4 -2
  91. package/migrations/005_hybrid_search.sql +16 -61
  92. package/migrations/007_akinator_reasoning.sql +4 -3
  93. package/package.json +2 -1
  94. package/skills/kiokuko-ui-design-soul/SKILL.md +50 -0
  95. package/skills/kiokuko-ui-design-soul/references/ui-checklist.md +71 -0
@@ -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.8",
3
+ "version": "0.1.10",
4
4
  "description": "Model-agnostic external memory for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,6 +15,7 @@
15
15
  "files": [
16
16
  "dist/",
17
17
  "migrations/",
18
+ "skills/",
18
19
  "templates/",
19
20
  "README.md",
20
21
  "README.ja.md",
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: kiokuko-ui-design-soul
3
+ description: Apply HIG principles to app and web UI design, implementation, and review.
4
+ ---
5
+
6
+ <!-- KIOKUKO MANAGED STANDARD SKILL: kiokuko-ui-design-soul -->
7
+
8
+ # UI design soul
9
+
10
+ Use this skill when designing, implementing, or reviewing application and web interfaces. Do not invoke it for backend-only work, image generation alone, or tasks unrelated to an interface.
11
+
12
+ Treat Purpose, Agency, Responsibility, Familiarity, Flexibility, Simplicity, Craft, and Delight as decision principles, not as a mandate to copy Apple's visual style. Product requirements, the existing design system, accessibility standards, and safety and privacy requirements take precedence.
13
+
14
+ ## Establish the intent
15
+
16
+ Before choosing components or styling, state or infer from evidence:
17
+
18
+ - the interface's purpose;
19
+ - the people it serves;
20
+ - their primary task;
21
+ - how they should feel while completing it.
22
+
23
+ If any of these would materially change the design and cannot be inferred, ask one focused question. Otherwise, proceed and state the assumption.
24
+
25
+ ## Design the interaction contract
26
+
27
+ For every relevant action, cover the states that can occur: actionable, pressed or focused, processing, success, empty, failure, offline, permission denied, destructive confirmation, and recovered. Omit only states that are genuinely impossible.
28
+
29
+ - Give buttons immediate press and focus feedback.
30
+ - Keep asynchronous feedback in the action's context: update its label or status, show progress, and prevent accidental duplicate execution.
31
+ - Use determinate progress when completion can be measured and indeterminate progress otherwise.
32
+ - If progress stalls, explain why and identify the next action. Offer cancellation when the operation can be interrupted safely.
33
+ - Preserve input and completed work on failure. Provide a recovery path such as retry, undo, or back.
34
+ - Match confirmation strength to risk. Prefer undo for safely reversible actions; require explicit confirmation when recovery is unavailable or harm is material.
35
+ - Use motion only to clarify state, continuity, or causality. Never make animation the only carrier of information, and respect Reduced Motion.
36
+
37
+ ## Adapt to the platform
38
+
39
+ For web interfaces, do not force an Apple-like appearance. Follow the existing design system, semantic HTML, WCAG 2.2, and the conventions of the target platform. Support keyboard, screen reader, touch, pointer, responsive layouts, and relevant system preferences.
40
+
41
+ Treat Delight as the combined result of task completion, confidence, recoverability, and careful detail—not as an amount of decoration.
42
+
43
+ ## Deliver and verify
44
+
45
+ 1. Identify the primary flow and interaction states before polishing the happy path.
46
+ 2. Implement feedback and recovery beside the action that triggers them.
47
+ 3. Test with real input methods and accessibility settings, not screenshots alone.
48
+ 4. Report covered states, verified behaviors, and any known gaps.
49
+
50
+ Read [references/ui-checklist.md](references/ui-checklist.md) when producing or reviewing a concrete interface, when asynchronous or destructive behavior is involved, or when accessibility validation is in scope.
@@ -0,0 +1,71 @@
1
+ <!-- KIOKUKO MANAGED STANDARD SKILL: kiokuko-ui-design-soul -->
2
+
3
+ # UI design and review checklist
4
+
5
+ Last reviewed against the official sources: 2026-08-22.
6
+
7
+ This checklist paraphrases decision principles. It does not reproduce Apple text or require Apple-styled visuals.
8
+
9
+ ## Eight-principle map
10
+
11
+ | Principle | Practical question |
12
+ | --- | --- |
13
+ | Purpose | Does every important element help the user complete the primary task? |
14
+ | Agency | Can the user understand, initiate, interrupt where safe, and recover from actions? |
15
+ | Responsibility | Does the interface protect privacy, attention, safety, and user-created work? |
16
+ | Familiarity | Do labels, controls, navigation, and feedback follow the target platform's conventions? |
17
+ | Flexibility | Does the flow adapt to ability, input method, device, content size, and context? |
18
+ | Simplicity | Is the next meaningful action clear without hiding necessary information or control? |
19
+ | Craft | Are states, spacing, copy, timing, focus, and edge cases implemented consistently? |
20
+ | Delight | Does successful, calm, recoverable use feel better because the details work together? |
21
+
22
+ ## State coverage
23
+
24
+ For each primary action, verify the applicable states:
25
+
26
+ - **Actionable:** the label predicts the result; enabled and disabled states are distinguishable without color alone.
27
+ - **Pressed and focused:** feedback is immediate; keyboard focus is visible; focus order follows the task.
28
+ - **Processing:** status remains near the initiating control; duplicate submission is prevented without trapping the user.
29
+ - **Progress:** measurable work uses a determinate value; unmeasurable work uses an indeterminate indicator and an accessible status message.
30
+ - **Long or stalled work:** expectations are updated; a reason and next step are shown; cancellation is available only when it is safe and real.
31
+ - **Success:** completion is perceivable visually and programmatically; the interface moves focus only when that helps the next task.
32
+ - **Empty:** the state explains what is absent and offers a relevant next action rather than presenting a dead end.
33
+ - **Failure:** input and completed work are retained; the message says what happened in actionable language; retry, undo, or back is available where meaningful.
34
+ - **Offline:** unavailable behavior is explicit; queued or local work is not implied unless it is actually preserved.
35
+ - **Permission denied:** explain the missing capability and provide a safe route to settings, an alternative, or back.
36
+ - **Destructive:** communicate scope and consequence; prefer undo for reversible actions and use explicit confirmation for material irreversible harm.
37
+ - **Recovered:** clear stale errors and busy states; restore a coherent focus position; avoid re-running the action unexpectedly.
38
+
39
+ ## Accessibility and adaptation
40
+
41
+ - Use semantic HTML or native controls before recreating their behavior.
42
+ - Verify the full primary flow with keyboard only, including visible focus and escape from overlays.
43
+ - Verify names, roles, values, errors, progress, and status announcements with a screen reader.
44
+ - Test touch, pointer, keyboard, and relevant alternate input; do not require hover, precise pointing, or a single gesture.
45
+ - Test narrow and wide layouts, zoom or text resizing, longer translated copy, and dynamic content.
46
+ - Do not encode meaning with color, motion, shape, or sound alone.
47
+ - Respect Reduced Motion and provide equivalent state information without animation.
48
+ - Keep time limits adjustable or avoid them unless the task itself requires one.
49
+ - On the web, apply the existing design system and WCAG 2.2; do not imitate iOS merely because these principles originated in Apple HIG.
50
+
51
+ ## Async-action spot check
52
+
53
+ For a save, upload, generation, import, or other asynchronous action, confirm:
54
+
55
+ 1. Press or focus feedback is immediate.
56
+ 2. The busy state names the ongoing action and blocks accidental duplicates.
57
+ 3. Progress type matches what the system can measure.
58
+ 4. Cancellation has defined semantics and leaves data consistent.
59
+ 5. Success and failure are announced in the same task context.
60
+ 6. A failure keeps user input and provides a tested recovery path.
61
+
62
+ ## Official sources
63
+
64
+ - Apple Human Interface Guidelines — Design principles: https://developer.apple.com/design/human-interface-guidelines/design-principles
65
+ - Apple Human Interface Guidelines — Buttons: https://developer.apple.com/design/human-interface-guidelines/buttons
66
+ - Apple Human Interface Guidelines — Loading: https://developer.apple.com/design/human-interface-guidelines/loading
67
+ - Apple Human Interface Guidelines — Progress indicators: https://developer.apple.com/design/human-interface-guidelines/progress-indicators
68
+ - Apple Human Interface Guidelines — Feedback: https://developer.apple.com/design/human-interface-guidelines/feedback
69
+ - Apple Human Interface Guidelines — Motion: https://developer.apple.com/design/human-interface-guidelines/motion
70
+ - Apple Human Interface Guidelines — Accessibility: https://developer.apple.com/design/human-interface-guidelines/accessibility
71
+ - W3C Web Content Accessibility Guidelines 2.2: https://www.w3.org/TR/WCAG22/