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 +52 -252
- package/boot-screen.html +210 -0
- package/package.json +3 -1
- package/vektor-banner-loader.js +20 -0
package/README.md
CHANGED
|
@@ -1,252 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
package/boot-screen.html
ADDED
|
@@ -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 · 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"><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.
|
|
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 };
|