vektor-slipstream 1.0.9 → 1.1.1

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.
package/README.md CHANGED
@@ -1,252 +1,52 @@
1
- \# vektor-slipstream
2
-
3
-
4
-
5
- \*\*Hardware-accelerated persistent memory for AI agents.\*\*
6
-
7
- Local-first. Zero cloud dependency. $0 embedding cost.
8
-
9
-
10
-
11
- ```bash
12
-
13
- npm install vektor-slipstream
14
-
15
- ```
16
-
17
-
18
-
19
- \---
20
-
21
-
22
-
23
- \## What it is
24
-
25
-
26
-
27
- A drop-in memory layer for any AI agent. Your agent remembers everything across sessions — preferences, decisions, research, conversations — stored in a single portable SQLite file on your machine.
28
-
29
-
30
-
31
- No OpenAI embedding bill. No cloud roundtrip. No API key for memory.
32
-
33
-
34
-
35
- ```js
36
-
37
- const { createMemory } = require('vektor-slipstream');
38
-
39
-
40
-
41
- const memory = await createMemory({ agentId: 'my-agent' });
42
-
43
-
44
-
45
- // Store a memory
46
-
47
- await memory.remember('User prefers TypeScript over JavaScript');
48
-
49
-
50
-
51
- // Recall by semantic similarity — avg 8ms, fully local
52
-
53
- const results = await memory.recall('coding preferences');
54
-
55
- // → \[{ content: 'User prefers TypeScript...', score: 0.97, id: 1 }]
56
-
57
- ```
58
-
59
-
60
-
61
- \---
62
-
63
-
64
-
65
- \## How it works
66
-
67
-
68
-
69
- \- \*\*Local ONNX embeddings\*\* — `all-MiniLM-L6-v2 INT8` runs on your hardware via `onnxruntime-node`. No API calls.
70
-
71
- \- \*\*Hyper-PRAGMA SQLite\*\* — WAL mode, 1GB mmap, 64MB cache. Recall at RAM speeds.
72
-
73
- \- \*\*MAGMA graph\*\* — 4-layer associative graph (semantic · causal · temporal · entity). Memories connect to each other.
74
-
75
- \- \*\*Hardware auto-detection\*\* — uses CUDA on NVIDIA, CoreML on Apple Silicon, CPU everywhere else.
76
-
77
-
78
-
79
- \---
80
-
81
-
82
-
83
- \## API
84
-
85
-
86
-
87
- ```js
88
-
89
- const { createMemory } = require('vektor-slipstream');
90
-
91
-
92
-
93
- const memory = await createMemory({
94
-
95
-   agentId: 'my-agent', // isolates memories per agent
96
-
97
-   dbPath: './memory.db', // default: ./slipstream-memory.db
98
-
99
-   silent: false, // suppress boot banner
100
-
101
- });
102
-
103
- ```
104
-
105
-
106
-
107
- \### `memory.remember(text, opts?)`
108
-
109
- Store a memory with its vector embedding.
110
-
111
- ```js
112
-
113
- const { id } = await memory.remember('User is based in Brisbane, AU');
114
-
115
- const { id } = await memory.remember('Closed Series A at $4M', { importance: 5 });
116
-
117
- ```
118
-
119
-
120
-
121
- \### `memory.recall(query, topK?)`
122
-
123
- Semantic recall — returns top-k most relevant memories.
124
-
125
- ```js
126
-
127
- const results = await memory.recall('user location', 5);
128
-
129
- // → \[{ id, content, score, importance }]
130
-
131
- ```
132
-
133
-
134
-
135
- \### `memory.graph(concept, opts?)`
136
-
137
- Breadth-first traversal from a concept — finds connected memories.
138
-
139
- ```js
140
-
141
- const { nodes, edges } = await memory.graph('fundraising', { hops: 2 });
142
-
143
- ```
144
-
145
-
146
-
147
- \### `memory.delta(topic, days?)`
148
-
149
- What changed on a topic in the last N days.
150
-
151
- ```js
152
-
153
- const changes = await memory.delta('project status', 7);
154
-
155
- ```
156
-
157
-
158
-
159
- \### `memory.briefing()`
160
-
161
- Summary of everything learned in the last 24 hours. Inject into system prompt.
162
-
163
- ```js
164
-
165
- const brief = await memory.briefing();
166
-
167
- // → "\[SLIPSTREAM BRIEFING — last 24h — 12 memories]\\n1. ..."
168
-
169
- ```
170
-
171
-
172
-
173
- \---
174
-
175
-
176
-
177
- \## Examples
178
-
179
-
180
-
181
- Three production-ready agent examples are included in `examples/`:
182
-
183
-
184
-
185
- | File | Description |
186
-
187
- |------|-------------|
188
-
189
- | `example-langchain-researcher.js` | LangChain agent that builds a persistent knowledge base |
190
-
191
- | `example-openai-assistant.js` | OpenAI assistant with automatic cross-session memory |
192
-
193
- | `example-claude-mcp.js` | Claude MCP server + direct chat mode |
194
-
195
-
196
-
197
- See \[`examples/README.md`](examples/README.md) for setup and usage.
198
-
199
-
200
-
201
- \---
202
-
203
-
204
-
205
- \## Performance
206
-
207
-
208
-
209
- | Metric | Value |
210
-
211
- |--------|-------|
212
-
213
- | Recall latency | \~8ms avg (local SQLite) |
214
-
215
- | Embedding cost | $0 — fully local ONNX |
216
-
217
- | Embedding latency | \~10ms GPU / \~25ms CPU (post-warmup) |
218
-
219
- | DB engine | SQLite WAL + 1GB mmap |
220
-
221
- | Vector dimensions | 384 (all-MiniLM-L6-v2 INT8) |
222
-
223
-
224
-
225
- \---
226
-
227
-
228
-
229
- \## Requirements
230
-
231
-
232
-
233
- \- Node.js 18+
234
-
235
- \- \~25MB disk for the ONNX model (bundled)
236
-
237
-
238
-
239
- \---
240
-
241
-
242
-
243
- \## License
244
-
245
-
246
-
247
- Commercial licence — see LICENSE file.
248
-
249
- One-time purchase includes all future updates.
250
-
251
- Purchase at \[vektormemory.com](https://vektormemory.com)
252
-
1
+ # vektor-slipstream
2
+
3
+ Hardware-accelerated persistent memory for AI agents. Local-first. No cloud. One-time payment.
4
+
5
+ ## Install
6
+ ```bash
7
+ npm install vektor-slipstream
8
+ npx vektor setup
9
+ ```
10
+
11
+ ## Quick Start
12
+ ```js
13
+ const { createMemory } = require('vektor-slipstream');
14
+
15
+ const memory = await createMemory({
16
+ agentId: 'my-agent',
17
+ licenceKey: process.env.VEKTOR_LICENCE_KEY,
18
+ });
19
+
20
+ await memory.remember('User prefers TypeScript over JavaScript');
21
+ const results = await memory.recall('coding preferences');
22
+ // → [{ content, score, id }]
23
+ ```
24
+
25
+ ## CLI
26
+ ```bash
27
+ npx vektor setup # First-run wizard
28
+ npx vektor activate # Activate licence key
29
+ npx vektor test # Test memory engine
30
+ npx vektor status # System health check
31
+ npx vektor mcp # Start Claude MCP server
32
+ npx vektor rem # Run REM dream cycle
33
+ npx vektor help # All commands
34
+ ```
35
+
36
+ ## What's Included
37
+
38
+ - **MAGMA graph** — 4-layer associative memory (semantic, causal, temporal, entity)
39
+ - **AUDN curation** — zero contradictions, zero duplicates
40
+ - **REM dream cycle** — 50:1 memory compression
41
+ - **Claude MCP server** persistent memory for Claude Desktop
42
+ - **Cloak** — stealth browser, AES-256 vault, layout sensor
43
+ - **Mistral bridge** — vektor_memoire tool for Le Chat
44
+ - **LangChain · OpenAI · Gemini · Groq · Ollama** — all supported
45
+ - **Local ONNX embeddings** — $0 embedding cost, no API key
46
+ - **Single SQLite file** — portable, yours forever
47
+
48
+ ## Licence
49
+
50
+ Commercial licence. One-time payment. 3-machine activation via Polar.
51
+ Purchase at: https://vektormemory.com/product#pricing
52
+ Support: hello@vektormemory.com
@@ -0,0 +1,210 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8"/>
5
+ <title>VEKTOR SLIPSTREAM</title>
6
+ <style>
7
+ * { margin: 0; padding: 0; box-sizing: border-box; }
8
+ body {
9
+ background: #0a0a0f;
10
+ color: #e0e0e0;
11
+ font-family: 'IBM Plex Mono', 'Courier New', monospace;
12
+ min-height: 100vh;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ }
17
+ .wrap { max-width: 620px; width: 100%; padding: 40px 24px; }
18
+
19
+ /* ASCII logo */
20
+ .logo {
21
+ font-size: clamp(7px, 1.4vw, 13px);
22
+ line-height: 1.2;
23
+ color: #e0e0e0;
24
+ white-space: pre;
25
+ letter-spacing: 0;
26
+ margin-bottom: 24px;
27
+ opacity: 0;
28
+ animation: fadeIn 0.6s ease 0.2s forwards;
29
+ }
30
+
31
+ /* Tagline */
32
+ .tagline {
33
+ font-size: 11px;
34
+ letter-spacing: 4px;
35
+ color: rgba(255,255,255,0.3);
36
+ text-transform: uppercase;
37
+ margin-bottom: 32px;
38
+ opacity: 0;
39
+ animation: fadeIn 0.6s ease 0.5s forwards;
40
+ }
41
+
42
+ /* Stats grid */
43
+ .stats {
44
+ display: grid;
45
+ grid-template-columns: 1fr 1fr 1fr;
46
+ gap: 10px;
47
+ margin-bottom: 24px;
48
+ opacity: 0;
49
+ animation: fadeIn 0.6s ease 0.7s forwards;
50
+ }
51
+ .stat {
52
+ background: rgba(255,255,255,0.04);
53
+ border: 1px solid rgba(255,255,255,0.08);
54
+ border-radius: 6px;
55
+ padding: 12px 14px;
56
+ }
57
+ .stat-label {
58
+ font-size: 9px;
59
+ letter-spacing: 3px;
60
+ color: rgba(255,255,255,0.3);
61
+ margin-bottom: 6px;
62
+ }
63
+ .stat-value {
64
+ font-size: 13px;
65
+ color: #fff;
66
+ font-weight: 500;
67
+ }
68
+
69
+ /* Laws */
70
+ .laws {
71
+ background: rgba(255,255,255,0.03);
72
+ border: 1px solid rgba(255,255,255,0.07);
73
+ border-radius: 6px;
74
+ padding: 16px 18px;
75
+ margin-bottom: 24px;
76
+ opacity: 0;
77
+ animation: fadeIn 0.6s ease 0.9s forwards;
78
+ }
79
+ .law {
80
+ display: flex;
81
+ gap: 12px;
82
+ padding: 5px 0;
83
+ font-size: 11px;
84
+ color: rgba(255,255,255,0.5);
85
+ border-bottom: 1px solid rgba(255,255,255,0.04);
86
+ }
87
+ .law:last-child { border-bottom: none; }
88
+ .law-num {
89
+ color: rgba(255,255,255,0.2);
90
+ min-width: 50px;
91
+ }
92
+
93
+ /* Boot log */
94
+ .log {
95
+ font-size: 11px;
96
+ color: rgba(255,255,255,0.25);
97
+ line-height: 1.8;
98
+ opacity: 0;
99
+ animation: fadeIn 0.6s ease 1.1s forwards;
100
+ }
101
+ .log-line { display: flex; gap: 8px; }
102
+ .log-ok { color: #4ade80; }
103
+ .log-dim { color: rgba(255,255,255,0.2); }
104
+
105
+ /* Progress bar */
106
+ .progress-wrap {
107
+ margin-top: 20px;
108
+ opacity: 0;
109
+ animation: fadeIn 0.4s ease 1.3s forwards;
110
+ }
111
+ .progress-label {
112
+ font-size: 9px;
113
+ letter-spacing: 3px;
114
+ color: rgba(255,255,255,0.2);
115
+ margin-bottom: 6px;
116
+ }
117
+ .progress-bar {
118
+ height: 2px;
119
+ background: rgba(255,255,255,0.06);
120
+ border-radius: 2px;
121
+ overflow: hidden;
122
+ }
123
+ .progress-fill {
124
+ height: 100%;
125
+ background: linear-gradient(90deg, rgba(255,255,255,0.3), rgba(255,255,255,0.6));
126
+ border-radius: 2px;
127
+ width: 0%;
128
+ animation: progress 2s ease 1.4s forwards;
129
+ }
130
+
131
+ @keyframes fadeIn {
132
+ from { opacity: 0; transform: translateY(6px); }
133
+ to { opacity: 1; transform: translateY(0); }
134
+ }
135
+ @keyframes progress {
136
+ 0% { width: 0%; }
137
+ 60% { width: 75%; }
138
+ 100% { width: 100%; }
139
+ }
140
+ </style>
141
+ </head>
142
+ <body>
143
+ <div class="wrap">
144
+
145
+ <div class="logo"> ██╗ ██╗███████╗██╗ ██╗████████╗ ██████╗ ██████╗
146
+ ██║ ██║██╔════╝██║ ██╔╝╚══██╔══╝██╔═══██╗██╔══██╗
147
+ ██║ ██║█████╗ █████╔╝ ██║ ██║ ██║██████╔╝
148
+ ╚██╗ ██╔╝██╔══╝ ██╔═██╗ ██║ ██║ ██║██╔══██╗
149
+ ╚████╔╝ ███████╗██║ ██╗ ██║ ╚██████╔╝██║ ██║
150
+ ╚═══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝</div>
151
+
152
+ <div class="tagline">Slipstream v1.0.8 &nbsp;·&nbsp; Sovereign Agent Memory</div>
153
+
154
+ <div class="stats">
155
+ <div class="stat">
156
+ <div class="stat-label">EP</div>
157
+ <div class="stat-value" id="ep">CPU · Hash</div>
158
+ </div>
159
+ <div class="stat">
160
+ <div class="stat-label">EMBED</div>
161
+ <div class="stat-value">&lt;1ms · $0.00</div>
162
+ </div>
163
+ <div class="stat">
164
+ <div class="stat-label">BOOT</div>
165
+ <div class="stat-value" id="boot">—ms</div>
166
+ </div>
167
+ </div>
168
+
169
+ <div class="laws">
170
+ <div class="law"><span class="law-num">LAW I</span><span>locality — no cloud sync path</span></div>
171
+ <div class="law"><span class="law-num">LAW II</span><span>hygiene — AUDN on every write</span></div>
172
+ <div class="law"><span class="law-num">LAW III</span><span>synthesis — REM compress-only</span></div>
173
+ <div class="law"><span class="law-num">LAW IV</span><span>permanence — SQLite persists</span></div>
174
+ </div>
175
+
176
+ <div class="log">
177
+ <div class="log-line"><span class="log-ok">[vektor]</span><span>Sovereign Agent active</span></div>
178
+ <div class="log-line"><span class="log-ok">[vektor]</span><span>Law I ✓ locality — no cloud sync path</span></div>
179
+ <div class="log-line"><span class="log-ok">[vektor]</span><span>Law II ✓ hygiene — AUDN on every write</span></div>
180
+ <div class="log-line"><span class="log-ok">[vektor]</span><span>Law III ✓ synthesis — REM compress-only</span></div>
181
+ <div class="log-line"><span class="log-ok">[vektor]</span><span>Law IV ✓ permanence — SQLite persists</span></div>
182
+ <div class="log-line log-dim"><span>[slipstream]</span><span>Loading @xenova/transformers...</span></div>
183
+ <div class="log-line log-ok" id="xlog" style="display:none"><span>[slipstream]</span><span>✓ Semantic embeddings active (all-MiniLM-L6-v2 INT8)</span></div>
184
+ </div>
185
+
186
+ <div class="progress-wrap">
187
+ <div class="progress-label">INITIALISING</div>
188
+ <div class="progress-bar"><div class="progress-fill" id="pbar"></div></div>
189
+ </div>
190
+
191
+ </div>
192
+ <script>
193
+ // Simulate boot sequence
194
+ const start = Date.now();
195
+ setTimeout(() => {
196
+ document.getElementById('boot').textContent = (Date.now() - start) + 'ms';
197
+ document.getElementById('xlog').style.display = 'flex';
198
+ document.querySelector('.progress-label').textContent = 'READY';
199
+ }, 2200);
200
+
201
+ // Allow parent to pass real stats via postMessage
202
+ window.addEventListener('message', (e) => {
203
+ if (e.data?.type === 'vektor-boot') {
204
+ if (e.data.ep) document.getElementById('ep').textContent = e.data.ep;
205
+ if (e.data.bootMs) document.getElementById('boot').textContent = e.data.bootMs + 'ms';
206
+ }
207
+ });
208
+ </script>
209
+ </body>
210
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vektor-slipstream",
3
- "version": "1.0.9",
3
+ "version": "1.1.1",
4
4
  "description": "Hardware-accelerated persistent memory for AI agents. Local-first, zero cloud dependency, $0 embedding cost.",
5
5
  "main": "slipstream-core.js",
6
6
  "bin": {
@@ -48,6 +48,8 @@
48
48
  "vektor-licence-prompt.js",
49
49
  "vektor-cli.js",
50
50
  "vektor-setup.js",
51
+ "vektor-banner-loader.js",
52
+ "boot-screen.html",
51
53
  "cloak.js",
52
54
  "sovereign.js",
53
55
  "visualize.js",
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ // vektor-banner-loader.js — prints ASCII banner immediately on require
3
+ // Injected before slipstream-core loads — zero latency
4
+
5
+ const os = require('os');
6
+ const start = Date.now();
7
+
8
+ console.log('');
9
+ console.log(' \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ');
10
+ console.log(' \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255d\u2588\u2588\u2551 \u2588\u2588\u2554\u255d\u2554\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557');
11
+ console.log(' \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d ');
12
+ console.log(' \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2554\u2550\u2550\u255d \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 ');
13
+ console.log(' \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551 ');
14
+ console.log(' \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d ');
15
+ console.log('');
16
+ console.log(' SLIPSTREAM v1.0.8 \u00b7 Sovereign Agent Memory');
17
+ console.log(' \u2514\u2500 Loading... (first run downloads ~25MB model \u2014 one time only)');
18
+ console.log('');
19
+
20
+ module.exports = { loadedAt: start };