laminark 2.21.6

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 (40) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/README.md +182 -0
  3. package/package.json +63 -0
  4. package/plugin/.claude-plugin/plugin.json +13 -0
  5. package/plugin/.mcp.json +12 -0
  6. package/plugin/dist/analysis/worker.d.ts +1 -0
  7. package/plugin/dist/analysis/worker.js +233 -0
  8. package/plugin/dist/analysis/worker.js.map +1 -0
  9. package/plugin/dist/config-t8LZeB-u.mjs +90 -0
  10. package/plugin/dist/config-t8LZeB-u.mjs.map +1 -0
  11. package/plugin/dist/hooks/handler.d.ts +284 -0
  12. package/plugin/dist/hooks/handler.d.ts.map +1 -0
  13. package/plugin/dist/hooks/handler.js +2125 -0
  14. package/plugin/dist/hooks/handler.js.map +1 -0
  15. package/plugin/dist/index.d.ts +445 -0
  16. package/plugin/dist/index.d.ts.map +1 -0
  17. package/plugin/dist/index.js +5831 -0
  18. package/plugin/dist/index.js.map +1 -0
  19. package/plugin/dist/observations-Ch0nc47i.d.mts +170 -0
  20. package/plugin/dist/observations-Ch0nc47i.d.mts.map +1 -0
  21. package/plugin/dist/tool-registry-CZ3mJ4iR.mjs +2655 -0
  22. package/plugin/dist/tool-registry-CZ3mJ4iR.mjs.map +1 -0
  23. package/plugin/hooks/hooks.json +78 -0
  24. package/plugin/scripts/README.md +47 -0
  25. package/plugin/scripts/bump-version.sh +44 -0
  26. package/plugin/scripts/ensure-deps.sh +12 -0
  27. package/plugin/scripts/install.sh +63 -0
  28. package/plugin/scripts/local-install.sh +103 -0
  29. package/plugin/scripts/setup-tmpdir.sh +65 -0
  30. package/plugin/scripts/uninstall.sh +95 -0
  31. package/plugin/scripts/update.sh +88 -0
  32. package/plugin/scripts/verify-install.sh +43 -0
  33. package/plugin/ui/activity.js +185 -0
  34. package/plugin/ui/app.js +1642 -0
  35. package/plugin/ui/graph.js +2333 -0
  36. package/plugin/ui/help.js +228 -0
  37. package/plugin/ui/index.html +492 -0
  38. package/plugin/ui/settings.js +650 -0
  39. package/plugin/ui/styles.css +2910 -0
  40. package/plugin/ui/timeline.js +652 -0
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Laminark Help tab -- in-app documentation for MCP tools,
3
+ * knowledge graph concepts, UI features, and keyboard shortcuts.
4
+ */
5
+
6
+ (function () {
7
+ function renderHelp() {
8
+ var container = document.getElementById('help-content');
9
+ if (!container) return;
10
+
11
+ container.innerHTML = '';
12
+
13
+ // -----------------------------------------------------------------------
14
+ // Section 1: Getting Started
15
+ // -----------------------------------------------------------------------
16
+ var startSection = document.createElement('div');
17
+ startSection.className = 'help-section';
18
+
19
+ var startTitle = document.createElement('h2');
20
+ startTitle.className = 'help-section-title';
21
+ startTitle.textContent = 'Getting Started';
22
+ startSection.appendChild(startTitle);
23
+
24
+ var startIntro = document.createElement('p');
25
+ startIntro.className = 'help-intro';
26
+ startIntro.textContent =
27
+ 'Laminark is a persistent adaptive memory system for Claude Code. ' +
28
+ 'It automatically captures observations during your coding sessions ' +
29
+ 'and builds a knowledge graph of entities and relationships across your projects.';
30
+ startSection.appendChild(startIntro);
31
+
32
+ container.appendChild(startSection);
33
+
34
+ // -----------------------------------------------------------------------
35
+ // Section 2: MCP Tools
36
+ // -----------------------------------------------------------------------
37
+ var toolsSection = document.createElement('div');
38
+ toolsSection.className = 'help-section';
39
+
40
+ var toolsTitle = document.createElement('h2');
41
+ toolsTitle.className = 'help-section-title';
42
+ toolsTitle.textContent = 'MCP Tools';
43
+ toolsSection.appendChild(toolsTitle);
44
+
45
+ var tools = [
46
+ { name: 'save_memory', desc: 'Save a new memory observation. Provide text content and an optional title.' },
47
+ { name: 'recall', desc: 'Search, view, purge, or restore memories. Search first to find matches, then act on specific results by ID.' },
48
+ { name: 'topic_context', desc: 'Shows recently stashed context threads. Use when asked \'where was I?\' or to see abandoned conversation threads.' },
49
+ { name: 'query_graph', desc: 'Query the knowledge graph to find entities and relationships. Answer questions like \'what files does this decision affect?\'' },
50
+ { name: 'graph_stats', desc: 'Get knowledge graph statistics: entity counts, relationship distribution, health metrics.' },
51
+ { name: 'status', desc: 'Show Laminark system status: connection info, memory count, token estimates, and capabilities.' },
52
+ { name: 'discover_tools', desc: 'Search the tool registry to find available tools by keyword or description. Supports semantic search.' },
53
+ { name: 'report_available_tools', desc: 'Register all tools available in this session with Laminark. Call once at session start.' },
54
+ ];
55
+
56
+ var toolsGrid = document.createElement('div');
57
+ toolsGrid.className = 'help-cards';
58
+
59
+ tools.forEach(function (tool) {
60
+ var card = document.createElement('div');
61
+ card.className = 'help-card';
62
+
63
+ var name = document.createElement('div');
64
+ name.className = 'help-card-name';
65
+ name.textContent = tool.name;
66
+ card.appendChild(name);
67
+
68
+ var desc = document.createElement('div');
69
+ desc.className = 'help-card-desc';
70
+ desc.textContent = tool.desc;
71
+ card.appendChild(desc);
72
+
73
+ toolsGrid.appendChild(card);
74
+ });
75
+
76
+ toolsSection.appendChild(toolsGrid);
77
+ container.appendChild(toolsSection);
78
+
79
+ // -----------------------------------------------------------------------
80
+ // Section 3: Knowledge Graph
81
+ // -----------------------------------------------------------------------
82
+ var graphSection = document.createElement('div');
83
+ graphSection.className = 'help-section';
84
+
85
+ var graphTitle = document.createElement('h2');
86
+ graphTitle.className = 'help-section-title';
87
+ graphTitle.textContent = 'Knowledge Graph';
88
+ graphSection.appendChild(graphTitle);
89
+
90
+ var entities = [
91
+ { name: 'Project', color: '#58a6ff', desc: 'Represents a codebase or project workspace.' },
92
+ { name: 'File', color: '#3fb950', desc: 'Source files, configs, or other project files.' },
93
+ { name: 'Decision', color: '#d29922', desc: 'Architectural or implementation decisions made during development.' },
94
+ { name: 'Problem', color: '#f85149', desc: 'Issues, bugs, or challenges encountered.' },
95
+ { name: 'Solution', color: '#a371f7', desc: 'Fixes, workarounds, or approaches that resolved problems.' },
96
+ { name: 'Reference', color: '#f0883e', desc: 'External docs, libraries, APIs, or resources referenced.' },
97
+ ];
98
+
99
+ var entityList = document.createElement('div');
100
+ entityList.className = 'help-entity-list';
101
+
102
+ entities.forEach(function (entity) {
103
+ var item = document.createElement('div');
104
+ item.className = 'help-entity-item';
105
+
106
+ var dot = document.createElement('span');
107
+ dot.className = 'help-entity-dot';
108
+ dot.style.background = entity.color;
109
+ item.appendChild(dot);
110
+
111
+ var name = document.createElement('span');
112
+ name.className = 'help-entity-name';
113
+ name.textContent = entity.name;
114
+ item.appendChild(name);
115
+
116
+ var desc = document.createElement('span');
117
+ desc.className = 'help-entity-desc';
118
+ desc.textContent = entity.desc;
119
+ item.appendChild(desc);
120
+
121
+ entityList.appendChild(item);
122
+ });
123
+
124
+ graphSection.appendChild(entityList);
125
+ container.appendChild(graphSection);
126
+
127
+ // -----------------------------------------------------------------------
128
+ // Section 4: UI Guide
129
+ // -----------------------------------------------------------------------
130
+ var uiSection = document.createElement('div');
131
+ uiSection.className = 'help-section';
132
+
133
+ var uiTitle = document.createElement('h2');
134
+ uiTitle.className = 'help-section-title';
135
+ uiTitle.textContent = 'UI Guide';
136
+ uiSection.appendChild(uiTitle);
137
+
138
+ var tabs = [
139
+ {
140
+ name: 'Knowledge Graph',
141
+ desc: 'Interactive visualization of entities and their relationships. Click nodes for details, use filters to focus on specific entity types, search to find nodes, and use layout buttons to change the graph arrangement.',
142
+ },
143
+ {
144
+ name: 'Timeline',
145
+ desc: 'Chronological view of sessions and observations. Shows when memories were captured and topic shifts detected.',
146
+ },
147
+ {
148
+ name: 'Activity',
149
+ desc: 'Live feed of real-time events from Laminark via SSE (Server-Sent Events). Shows new observations, entity updates, and session events as they happen.',
150
+ },
151
+ {
152
+ name: 'Settings',
153
+ desc: 'Database statistics and danger zone for resetting data. View counts of observations, graph nodes, sessions, etc.',
154
+ },
155
+ ];
156
+
157
+ tabs.forEach(function (tab) {
158
+ var item = document.createElement('div');
159
+ item.className = 'help-tab-item';
160
+
161
+ var name = document.createElement('div');
162
+ name.className = 'help-tab-name';
163
+ name.textContent = tab.name;
164
+ item.appendChild(name);
165
+
166
+ var desc = document.createElement('div');
167
+ desc.className = 'help-tab-desc';
168
+ desc.textContent = tab.desc;
169
+ item.appendChild(desc);
170
+
171
+ uiSection.appendChild(item);
172
+ });
173
+
174
+ container.appendChild(uiSection);
175
+
176
+ // -----------------------------------------------------------------------
177
+ // Section 5: Keyboard Shortcuts
178
+ // -----------------------------------------------------------------------
179
+ var kbSection = document.createElement('div');
180
+ kbSection.className = 'help-section';
181
+
182
+ var kbTitle = document.createElement('h2');
183
+ kbTitle.className = 'help-section-title';
184
+ kbTitle.textContent = 'Keyboard Shortcuts';
185
+ kbSection.appendChild(kbTitle);
186
+
187
+ var shortcuts = [
188
+ { keys: ['Ctrl', 'Shift', 'P'], desc: 'Toggle performance overlay (graph view)' },
189
+ { keys: ['Escape'], desc: 'Close detail panel / cancel dialog' },
190
+ { keys: ['Enter'], desc: 'Trigger server-side search (graph search input)' },
191
+ { keys: ['Arrow keys'], desc: 'Navigate search results dropdown' },
192
+ ];
193
+
194
+ var table = document.createElement('table');
195
+ table.className = 'help-shortcuts';
196
+
197
+ shortcuts.forEach(function (sc) {
198
+ var row = document.createElement('tr');
199
+
200
+ var keyCell = document.createElement('td');
201
+ sc.keys.forEach(function (key, idx) {
202
+ var kbd = document.createElement('kbd');
203
+ kbd.textContent = key;
204
+ keyCell.appendChild(kbd);
205
+ if (idx < sc.keys.length - 1) {
206
+ keyCell.appendChild(document.createTextNode(' + '));
207
+ }
208
+ });
209
+ row.appendChild(keyCell);
210
+
211
+ var descCell = document.createElement('td');
212
+ descCell.textContent = sc.desc;
213
+ row.appendChild(descCell);
214
+
215
+ table.appendChild(row);
216
+ });
217
+
218
+ kbSection.appendChild(table);
219
+ container.appendChild(kbSection);
220
+ }
221
+
222
+ // Auto-render when DOM is ready (help.js loads after app.js)
223
+ if (document.readyState === 'loading') {
224
+ document.addEventListener('DOMContentLoaded', renderHelp);
225
+ } else {
226
+ renderHelp();
227
+ }
228
+ })();