superlocalmemory 3.4.16 → 3.4.18

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 (83) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.json +1 -3
  3. package/pyproject.toml +10 -1
  4. package/src/superlocalmemory/cli/setup_wizard.py +30 -0
  5. package/src/superlocalmemory/server/routes/entity.py +5 -9
  6. package/src/superlocalmemory/server/routes/helpers.py +120 -15
  7. package/src/superlocalmemory/server/routes/ingest.py +2 -3
  8. package/src/superlocalmemory/server/routes/v3_api.py +42 -2
  9. package/src/superlocalmemory/server/unified_daemon.py +21 -11
  10. package/src/superlocalmemory.egg-info/PKG-INFO +5 -2
  11. package/src/superlocalmemory.egg-info/requires.txt +3 -0
  12. package/docs/ARCHITECTURE.md +0 -149
  13. package/docs/api-reference.md +0 -284
  14. package/docs/auto-memory.md +0 -150
  15. package/docs/cli-reference.md +0 -327
  16. package/docs/cloud-backup.md +0 -174
  17. package/docs/compliance.md +0 -191
  18. package/docs/configuration.md +0 -182
  19. package/docs/getting-started.md +0 -102
  20. package/docs/ide-setup.md +0 -261
  21. package/docs/mcp-tools.md +0 -220
  22. package/docs/migration-from-v2.md +0 -170
  23. package/docs/profiles.md +0 -173
  24. package/docs/screenshots/01-dashboard-main.png +0 -0
  25. package/docs/screenshots/02-knowledge-graph.png +0 -0
  26. package/docs/screenshots/03-math-health.png +0 -0
  27. package/docs/screenshots/03-patterns-learning.png +0 -0
  28. package/docs/screenshots/04-learning-dashboard.png +0 -0
  29. package/docs/screenshots/04-recall-lab.png +0 -0
  30. package/docs/screenshots/05-behavioral-analysis.png +0 -0
  31. package/docs/screenshots/05-trust-dashboard.png +0 -0
  32. package/docs/screenshots/06-graph-communities.png +0 -0
  33. package/docs/screenshots/06-settings.png +0 -0
  34. package/docs/screenshots/07-memories-blurred.png +0 -0
  35. package/docs/skill-evolution.md +0 -256
  36. package/docs/troubleshooting.md +0 -310
  37. package/docs/v2-archive/ACCESSIBILITY.md +0 -291
  38. package/docs/v2-archive/ARCHITECTURE.md +0 -886
  39. package/docs/v2-archive/CLI-COMMANDS-REFERENCE.md +0 -425
  40. package/docs/v2-archive/COMPRESSION-README.md +0 -390
  41. package/docs/v2-archive/FRAMEWORK-INTEGRATIONS.md +0 -300
  42. package/docs/v2-archive/MCP-MANUAL-SETUP.md +0 -775
  43. package/docs/v2-archive/MCP-TROUBLESHOOTING.md +0 -787
  44. package/docs/v2-archive/PATTERN-LEARNING.md +0 -228
  45. package/docs/v2-archive/PROFILES-GUIDE.md +0 -453
  46. package/docs/v2-archive/RESET-GUIDE.md +0 -353
  47. package/docs/v2-archive/SEARCH-ENGINE-V2.2.0.md +0 -749
  48. package/docs/v2-archive/SEARCH-INTEGRATION-GUIDE.md +0 -502
  49. package/docs/v2-archive/UI-SERVER.md +0 -262
  50. package/docs/v2-archive/UNIVERSAL-INTEGRATION.md +0 -488
  51. package/docs/v2-archive/V2.2.0-OPTIONAL-SEARCH.md +0 -666
  52. package/docs/v2-archive/WINDOWS-INSTALL-README.txt +0 -34
  53. package/docs/v2-archive/WINDOWS-POST-INSTALL.txt +0 -45
  54. package/docs/v2-archive/example_graph_usage.py +0 -146
  55. package/ui/index.html +0 -1879
  56. package/ui/js/agents.js +0 -192
  57. package/ui/js/auto-settings.js +0 -399
  58. package/ui/js/behavioral.js +0 -276
  59. package/ui/js/clusters.js +0 -206
  60. package/ui/js/compliance.js +0 -252
  61. package/ui/js/core.js +0 -246
  62. package/ui/js/dashboard.js +0 -110
  63. package/ui/js/events.js +0 -178
  64. package/ui/js/fact-detail.js +0 -92
  65. package/ui/js/feedback.js +0 -333
  66. package/ui/js/graph-core.js +0 -447
  67. package/ui/js/graph-filters.js +0 -220
  68. package/ui/js/graph-interactions.js +0 -351
  69. package/ui/js/graph-ui.js +0 -214
  70. package/ui/js/ide-status.js +0 -102
  71. package/ui/js/init.js +0 -45
  72. package/ui/js/learning.js +0 -435
  73. package/ui/js/lifecycle.js +0 -298
  74. package/ui/js/math-health.js +0 -98
  75. package/ui/js/memories.js +0 -264
  76. package/ui/js/modal.js +0 -357
  77. package/ui/js/patterns.js +0 -93
  78. package/ui/js/profiles.js +0 -236
  79. package/ui/js/recall-lab.js +0 -292
  80. package/ui/js/search.js +0 -59
  81. package/ui/js/settings.js +0 -224
  82. package/ui/js/timeline.js +0 -32
  83. package/ui/js/trust-dashboard.js +0 -73
@@ -1,291 +0,0 @@
1
- # Accessibility Features - SuperLocalMemory V2.6.5
2
-
3
- **Last Updated:** February 16, 2026
4
- **Author:** Varun Pratap Bhardwaj
5
-
6
- ---
7
-
8
- ## Overview
9
-
10
- SuperLocalMemory V2.6.5 includes comprehensive keyboard navigation and screen reader support for the interactive knowledge graph, making it fully accessible to users with disabilities.
11
-
12
- ## Keyboard Navigation
13
-
14
- ### Graph Container Focus
15
-
16
- The graph container (`#graph-container`) is focusable via keyboard:
17
-
18
- - **Focus method:** Click graph OR press `Tab` from controls above
19
- - **Visual indicator:** Browser native focus outline + first node highlighted with blue border
20
- - **ARIA role:** `role="application"` signals custom keyboard handling
21
-
22
- ### Node Navigation
23
-
24
- | Key | Action |
25
- |-----|--------|
26
- | **Tab** | Move to next node (cycles through all nodes) |
27
- | **Shift+Tab** | Move to previous node |
28
- | **→** (Right Arrow) | Move to nearest node on the right |
29
- | **←** (Left Arrow) | Move to nearest node on the left |
30
- | **↓** (Down Arrow) | Move to nearest node below |
31
- | **↑** (Up Arrow) | Move to nearest node above |
32
- | **Home** | Jump to first node |
33
- | **End** | Jump to last node |
34
-
35
- **Arrow Key Algorithm:**
36
- - Finds nodes in specified direction (based on X/Y coordinates)
37
- - Prioritizes nodes closer to current position
38
- - Combines Euclidean distance with directional score
39
- - Ensures no "stuck" states (always finds a valid next node)
40
-
41
- ### Actions
42
-
43
- | Key | Action |
44
- |-----|--------|
45
- | **Enter** or **Space** | Open modal for focused node |
46
- | **Escape** | Clear active filter OR blur graph (if no filter) |
47
-
48
- ### Visual Focus Indicator
49
-
50
- Focused nodes have the CSS class `.keyboard-focused` with:
51
-
52
- ```css
53
- border-width: 5px;
54
- border-color: #0066ff;
55
- border-style: solid;
56
- box-shadow: 0 0 15px #0066ff;
57
- ```
58
-
59
- The graph smoothly animates to center the focused node in the viewport.
60
-
61
- ---
62
-
63
- ## Screen Reader Support
64
-
65
- ### ARIA Attributes
66
-
67
- #### Graph Container
68
-
69
- ```html
70
- <div id="graph-container"
71
- role="application"
72
- aria-label="Interactive knowledge graph - use Tab to navigate nodes, Enter to view details, Arrow keys to move between adjacent nodes, Escape to clear filters"
73
- aria-describedby="graph-stats">
74
- </div>
75
- ```
76
-
77
- - **`role="application"`** - Signals custom keyboard handling
78
- - **`aria-label`** - Provides usage instructions
79
- - **`aria-describedby`** - Links to graph statistics (node/edge count)
80
-
81
- #### Status Regions
82
-
83
- ```html
84
- <div id="graph-status-full" role="status" aria-live="polite">
85
- Showing all memories
86
- </div>
87
-
88
- <div id="graph-status-filtered" role="status" aria-live="polite">
89
- Viewing Cluster X (Y memories)
90
- </div>
91
- ```
92
-
93
- - **`role="status"`** - Semantic status information
94
- - **`aria-live="polite"`** - Announces changes when user is idle
95
-
96
- #### Hidden Status Region
97
-
98
- An off-screen status region announces keyboard navigation events:
99
-
100
- ```html
101
- <div id="graph-sr-status"
102
- role="status"
103
- aria-live="polite"
104
- aria-atomic="true"
105
- style="position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden;">
106
- </div>
107
- ```
108
-
109
- This element is invisible but screen readers announce its content changes.
110
-
111
- #### Buttons
112
-
113
- All interactive buttons have `aria-label` attributes:
114
-
115
- ```html
116
- <button aria-label="Refresh graph data">...</button>
117
- <button aria-label="Clear filter and show all memories">...</button>
118
- <button aria-label="Toggle dark mode">...</button>
119
- ```
120
-
121
- #### Dropdowns
122
-
123
- Form controls have proper labels:
124
-
125
- ```html
126
- <label for="graph-layout-selector">Layout Algorithm:</label>
127
- <select id="graph-layout-selector" aria-label="Select graph layout algorithm">
128
- ```
129
-
130
- ### Screen Reader Announcements
131
-
132
- The `updateScreenReaderStatus()` function announces:
133
-
134
- 1. **Graph load:** "Graph loaded with X memories and Y connections"
135
- 2. **Node navigation:** "Memory 123: SuperLocalMemory Project, Cluster 2, Importance 8 out of 10"
136
- 3. **Filter cleared:** "Filters cleared, showing all memories"
137
-
138
- These announcements are sent to the hidden `#graph-sr-status` region.
139
-
140
- ---
141
-
142
- ## Modal Focus Management
143
-
144
- ### Opening Modal
145
-
146
- When `openMemoryModal()` is called:
147
-
148
- 1. **Store last focused element:** `window.lastFocusedElement = document.activeElement`
149
- 2. **Bootstrap modal shown event:** Focus moves to first button in modal
150
- 3. **Tab order:** Close button → Modal content → Action buttons → Footer buttons
151
-
152
- ### Closing Modal
153
-
154
- When modal closes (via Bootstrap `hidden.bs.modal` event):
155
-
156
- 1. **Restore focus:** `window.lastFocusedElement.focus()`
157
- 2. **Clear stored element:** `window.lastFocusedElement = null`
158
- 3. **User can continue:** Keyboard navigation resumes from same node
159
-
160
- This ensures users don't lose their place in the graph when opening/closing modals.
161
-
162
- ---
163
-
164
- ## Skip Links
165
-
166
- A skip link is provided for keyboard users:
167
-
168
- ```html
169
- <a href="#memories-pane" class="visually-hidden-focusable">Skip to Memories list</a>
170
- ```
171
-
172
- This link is invisible until focused (via Tab), allowing users to bypass the graph and jump directly to the Memories tab.
173
-
174
- ---
175
-
176
- ## Testing with Screen Readers
177
-
178
- ### macOS VoiceOver
179
-
180
- 1. **Enable:** Press `Cmd+F5`
181
- 2. **Navigate:** `Control+Option+Arrow keys`
182
- 3. **Read current element:** `Control+Option+A`
183
- 4. **Test focus:** Tab through graph → Verify announcements
184
-
185
- ### Windows NVDA
186
-
187
- 1. **Install:** Download from [nvaccess.org](https://www.nvaccess.org/)
188
- 2. **Start:** `Control+Alt+N`
189
- 3. **Navigate:** Arrow keys
190
- 4. **Browse mode:** Press `Insert+Space` to toggle
191
-
192
- ### Windows JAWS
193
-
194
- 1. **Commercial software:** Most widely used screen reader
195
- 2. **Navigate:** Arrow keys + Tab
196
- 3. **Read mode:** Virtual cursor navigation
197
-
198
- ### Linux Orca
199
-
200
- 1. **Enable:** `Alt+F2`, type "orca"
201
- 2. **Configure:** `orca --setup`
202
- 3. **Navigate:** Arrow keys
203
-
204
- ---
205
-
206
- ## Compliance
207
-
208
- ### WCAG 2.1 AA Compliance
209
-
210
- | Criterion | Status | Implementation |
211
- |-----------|--------|----------------|
212
- | **1.3.1 Info and Relationships** | ✅ Pass | Semantic HTML, ARIA roles |
213
- | **2.1.1 Keyboard** | ✅ Pass | Full keyboard navigation |
214
- | **2.1.2 No Keyboard Trap** | ✅ Pass | Escape key blurs graph |
215
- | **2.4.3 Focus Order** | ✅ Pass | Logical tab order |
216
- | **2.4.7 Focus Visible** | ✅ Pass | Blue outline on focused nodes |
217
- | **3.2.1 On Focus** | ✅ Pass | No unexpected context changes |
218
- | **4.1.2 Name, Role, Value** | ✅ Pass | ARIA labels on all controls |
219
- | **4.1.3 Status Messages** | ✅ Pass | aria-live regions |
220
-
221
- ### Section 508 Compliance
222
-
223
- - ✅ **(a) Keyboard access** - All graph functions accessible via keyboard
224
- - ✅ **(c) Color contrast** - Blue focus indicator meets 4.5:1 contrast ratio
225
- - ✅ **(d) Screen reader compatible** - ARIA labels and live regions
226
-
227
- ---
228
-
229
- ## Developer Notes
230
-
231
- ### Code Location
232
-
233
- - **Keyboard navigation:** `/ui/js/graph-cytoscape.js` (lines 950-1150)
234
- - **Modal focus management:** `/ui/js/modal.js` (lines 10-18, 142-160)
235
- - **ARIA attributes:** `/ui/index.html` (graph-pane section)
236
-
237
- ### Key Functions
238
-
239
- | Function | Purpose |
240
- |----------|---------|
241
- | `setupKeyboardNavigation()` | Attaches keyboard event handlers to graph container |
242
- | `focusNodeAtIndex(index)` | Highlights node and centers viewport |
243
- | `moveToAdjacentNode(direction, currentNode)` | Finds nearest node in specified direction |
244
- | `announceNode(node)` | Sends node info to screen reader |
245
- | `updateScreenReaderStatus(message)` | Updates hidden status region |
246
-
247
- ### Global State Variables
248
-
249
- ```javascript
250
- var focusedNodeIndex = 0; // Currently focused node index
251
- var keyboardNavigationEnabled = false; // Is keyboard nav active?
252
- var lastFocusedElement = null; // For modal focus return
253
- ```
254
-
255
- ### Cytoscape.js Style Class
256
-
257
- ```javascript
258
- {
259
- selector: 'node.keyboard-focused',
260
- style: {
261
- 'border-width': 5,
262
- 'border-color': '#0066ff',
263
- 'border-style': 'solid',
264
- 'box-shadow': '0 0 15px #0066ff'
265
- }
266
- }
267
- ```
268
-
269
- ---
270
-
271
- ## Future Enhancements (v2.7+)
272
-
273
- 1. **Voice commands:** Integrate Web Speech API for voice navigation
274
- 2. **Braille support:** Test with refreshable Braille displays
275
- 3. **High contrast mode:** Additional theme for low vision users
276
- 4. **Keyboard shortcuts help:** Press `?` to show keyboard shortcuts overlay
277
- 5. **Focus trapping in modal:** Prevent Tab from leaving modal when open
278
-
279
- ---
280
-
281
- ## Feedback
282
-
283
- If you encounter accessibility issues, please report them:
284
-
285
- - **GitHub Issues:** https://github.com/qualixar/superlocalmemory/issues
286
- - **Label:** Use `accessibility` tag
287
- - **Include:** Browser, screen reader (if applicable), and steps to reproduce
288
-
289
- ---
290
-
291
- **Copyright © 2026 Varun Pratap Bhardwaj - AGPL-3.0**