mumpix 1.0.17 → 1.0.19

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.19 - 2026-04-13
4
+
5
+ ### Internal & Sync
6
+ - Synchronized latest temporal engine and operator scripts from core module into the package tree.
7
+ - Configured embedded GGUF agent context window ceilings (8K) to prevent VRAM memory allocation conflicts with local LLMs (e.g., `mumpix-mlc-llm`).
8
+
9
+ ## 1.0.18 - 2026-03-30
10
+ - General performance and sync updates
11
+
12
+ ## 1.0.17 - 2026-03-24
13
+ - Core temporal sync patches
14
+
3
15
  ## 1.0.11 - 2026-03-03
4
16
 
5
17
  ## 1.0.12 - 2026-03-03
package/LICENSE CHANGED
@@ -1,20 +1,19 @@
1
- MUMPIX PROPRIETARY LICENSE
2
- Copyright (c) 2026 Mumpix (vdsx.cloud). All Rights Reserved.
1
+ Mumpix Business Source License 1.1 (BUSL-1.1)
2
+ Copyright (c) 2026 Mumpix (VDSX). All rights reserved.
3
3
 
4
- COMMERCIAL RESTRICTED USE LICENSE
4
+ Licensed under the Business Source License 1.1 (the "License").
5
+ You may obtain a copy of the License terms from Licensor.
5
6
 
6
- This software and associated documentation files (the "Software") are proprietary to Mumpix.
7
+ Use Grant:
8
+ - Non-production use, evaluation, and internal development are permitted.
9
+ - Production use requires a commercial agreement with Licensor.
7
10
 
8
- 1. NON-COMMERCIAL USE: Permission is hereby granted, free of charge, to any person obtaining a copy of this Software, to use the Software for personal, educational, or non-commercial research purposes only.
11
+ Restrictions:
12
+ - You may not offer the software as a competing hosted or embedded commercial service without a commercial license.
13
+ - You may not remove or alter proprietary notices.
9
14
 
10
- 2. COMMERCIAL RESTRICTIONS: ANY COMMERCIAL USE, INCLUDING BUT NOT LIMITED TO:
11
- - USING THE SOFTWARE AS PART OF A PAID SERVICE OR PRODUCT
12
- - USING THE SOFTWARE FOR INTERNAL BUSINESS OPERATIONS
13
- - REDISTRIBUTING THE SOFTWARE FOR PROFIT
14
- IS STRICTLY PROHIBITED WITHOUT AN EXPLICIT COMMERCIAL LICENSE FROM MUMPIX (vdsx.cloud).
15
+ Change Date:
16
+ - This package remains source-available under BUSL-1.1 unless and until Licensor publishes an updated license grant.
15
17
 
16
- 3. MODIFICATIONS: You may modify the Software for personal use, but you may not redistribute modified versions under any license that allows commercial use.
17
-
18
- 4. NO WARRANTY: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY.
19
-
20
- By using this Software, you agree to these terms. For commercial licensing inquiries, contact license@vdsx.cloud.
18
+ This software is provided "AS IS", without warranty of any kind.
19
+ For commercial licensing: license@vdsx.cloud
package/README.md CHANGED
@@ -1,396 +1,256 @@
1
1
  # Mumpix
2
2
 
3
- **SQLite for AI** embedded, zero-config memory database for AI agents and LLM applications.
3
+ MumpixDB is the reasoning ledger and structured memory engine for AI systems.
4
4
 
5
5
  ```bash
6
6
  npm install mumpix
7
7
  ```
8
8
 
9
- ---
9
+ ## What this package is
10
10
 
11
- ## Why Mumpix?
11
+ The `mumpix` npm package is the Node package for MumpixDB.
12
12
 
13
- If you've ever watched an agent "forget" what it just learned, or had to explain why the same prompt produced a different result a day later — Mumpix is your fix.
13
+ It is built for:
14
14
 
15
- - **Zero config** — one file, zero external dependencies, works offline
16
- - **Portable** the `.mumpix` file is the API. Copy it, move it, back it up
17
- - **Crash-safe** — WAL-based atomicity: records are either fully written or fully absent
18
- - **Hybrid recall** — exact match + TF-IDF semantic similarity out of the box
19
- - **Verified consistency** — immutable audit log, snapshot replay, compliance artifacts
20
- - **LangChain / LlamaIndex adapters** — drop-in integrations
15
+ - durable AI memory
16
+ - ordered reasoning state
17
+ - replayable context
18
+ - local-first storage
19
+ - audit-friendly execution
21
20
 
22
- ---
21
+ Core thesis:
23
22
 
24
- ## Quickstart
25
-
26
- ```js
27
- const { Mumpix } = require('mumpix')
28
-
29
- // Open (or create) a local database
30
- const db = await Mumpix.open('./agent.mumpix', { consistency: 'eventual' })
23
+ > Git stores what changed. MumpixDB stores why.
31
24
 
32
- // Store memories
33
- await db.remember('User prefers TypeScript over JavaScript')
34
- await db.remember('Project uses pnpm workspaces')
25
+ This package is the database layer. It is separate from higher-level products built on top of MumpixDB, including WYD Code.
35
26
 
36
- // Semantic recall — no API key, no cloud
37
- const answer = await db.recall('what language does the user prefer?')
38
- console.log(answer)
39
- // → 'User prefers TypeScript over JavaScript'
27
+ ## Why MumpixDB
40
28
 
41
- await db.close()
42
- ```
43
-
44
- ---
29
+ Most AI systems fail at the memory layer, not the model layer.
45
30
 
46
- ## API
31
+ MumpixDB gives you:
47
32
 
48
- ### Developer SDK (HTTP Client)
33
+ - local-first storage in a `.mumpix` file
34
+ - append-oriented durable state
35
+ - strict and verified execution modes
36
+ - replayable memory and audit surfaces
37
+ - semantic recall and exact recall
38
+ - a structured API for long-running assistants, workflows, and applications
49
39
 
50
- For developers integrating Mumpix-backed services (local runner, benchmark APIs, hosted tools):
40
+ ## Quickstart
51
41
 
52
42
  ```js
53
- const { MumpixDevClient } = require('mumpix')
43
+ const { Mumpix } = require('mumpix');
54
44
 
55
- const client = new MumpixDevClient({
56
- baseUrl: 'https://mumpixdb.com/benchmark'
57
- })
45
+ async function main() {
46
+ const db = await Mumpix.open('./reasoning.mumpix', { consistency: 'eventual' });
58
47
 
59
- const health = await client.health()
60
- await client.remember('user likes concise answers')
61
- const hit = await client.recall('what does the user like?')
62
- const stats = await client.stats()
63
- ```
48
+ await db.remember('User prefers short, direct answers');
49
+ await db.remember('Project auth expiry changed from 30min to 15min');
64
50
 
65
- ### `MumpixDevClient` methods
51
+ const answer = await db.recall('what style does the user prefer?');
52
+ console.log(answer);
66
53
 
67
- - `health()`
68
- - `remember(content)`
69
- - `recall(query)`
70
- - `recallMany(query, k)`
71
- - `memories()`
72
- - `clear()`
73
- - `stats()`
74
- - `settings()`
75
- - `updateSettings(patch)`
76
- - `files()`
77
- - `readFile(file, { atTs, source })`
78
- - `timeline(file, { source })`
79
- - `exportUrl(file, format, { atTs, source })`
80
- - `roms()`
81
- - `manualForRom(file)`
82
- - `manualViewUrl(file, { isolate, v })`
54
+ const stats = await db.stats();
55
+ console.log(stats);
83
56
 
84
- Errors are thrown as `MumpixApiError` with `.status` and `.data` fields.
57
+ await db.close();
58
+ }
85
59
 
86
- ---
60
+ main().catch(console.error);
61
+ ```
87
62
 
88
- ### `Mumpix.open(filePath, [opts])` → `Promise<MumpixDB>`
63
+ ## Core API
89
64
 
90
- Opens (or creates) a Mumpix database.
65
+ ### `Mumpix.open(filePath, [opts])`
91
66
 
92
- | Option | Type | Default | Description |
93
- |---|---|---|---|
94
- | `consistency` | `string` | `'eventual'` | `'eventual'` / `'strict'` / `'verified'` |
95
- | `embedFn` | `async fn(texts[]) → number[][]` | — | Custom embedding function (OpenAI, Cohere, etc.) |
67
+ Opens or creates a local MumpixDB file.
96
68
 
97
- Note: `strict` and `verified` are tier-gated capabilities. Without an active paid license, paid mode requests are blocked or downgraded to `eventual` based on license state.
69
+ ```js
70
+ const db = await Mumpix.open('./agent.mumpix', {
71
+ consistency: 'eventual'
72
+ });
73
+ ```
98
74
 
99
- ### Consistency modes
75
+ Options:
100
76
 
101
- | Mode | Write behaviour | Audit log | Use case |
77
+ | Option | Type | Default | Description |
102
78
  |---|---|---|---|
103
- | `eventual` | Fast append, OS-buffered | No | Prototypes, local tools |
104
- | `strict` | Synced to disk (`fdatasync`) | No | Production agents |
105
- | `verified` | Synced + immutable audit log | Yes | Fintech, healthcare, regulated AI |
106
-
107
- ---
79
+ | `consistency` | `string` | `'eventual'` | `'eventual'`, `'strict'`, or `'verified'` |
80
+ | `embedFn` | `async function` | | Custom embedding function for semantic recall |
108
81
 
109
82
  ### Core methods
110
83
 
111
84
  ```js
112
- // Store a memory
113
- await db.remember(text)
114
- // → { written: true, id: 1, consistency: 'strict' }
85
+ await db.remember(text);
86
+ await db.rememberAll(['one', 'two']);
115
87
 
116
- // Recall the best semantic match
117
- await db.recall(query)
118
- // → 'User prefers TypeScript over JavaScript' or null
88
+ await db.recall(query);
89
+ await db.recallMany(query, 5);
119
90
 
120
- // Recall top-k matches with scores
121
- await db.recallMany(query, k = 5)
122
- // → [{ id, content, ts, score }, ...]
123
-
124
- // Store multiple memories
125
- await db.rememberAll(['pref 1', 'pref 2', 'pref 3'])
126
-
127
- // Check if any memory matches
128
- await db.has(query)
129
- // → true | false
130
-
131
- // List all memories
132
- await db.list()
133
- // → [{ id, content, ts }, ...]
134
-
135
- // Delete all memories
136
- await db.clear()
137
- // → { cleared: true, count: 3 }
138
-
139
- // Stats
140
- await db.stats()
141
- // → { path, consistency, records, sizeBytes, created, version }
142
-
143
- // Close (releases file handles)
144
- await db.close()
91
+ await db.has(query);
92
+ await db.list();
93
+ await db.clear();
94
+ await db.stats();
95
+ await db.close();
145
96
  ```
146
97
 
147
- ### Verified-mode methods
98
+ ### Temporal API
148
99
 
149
- ```js
150
- const db = await Mumpix.open('./compliance.mumpix', { consistency: 'verified' })
100
+ `mumpix` also exposes a deterministic temporal layer built on top of WAL-backed records.
151
101
 
152
- // Full audit log
153
- await db.audit()
154
- // → [{ _type, id, hash, ts, ... }, ...]
155
-
156
- // Summary for dashboards
157
- await db.auditSummary()
158
- // → { totalEntries, writes, recalls, clears, firstEventAt, lastEventAt, auditPath }
159
-
160
- // Export as NDJSON (for compliance hand-off)
161
- await db.exportAudit()
162
- // → NDJSON string
163
- ```
164
-
165
- ### Recall options
102
+ This is meant to answer timeline questions by computing over normalized events, not by asking a model to guess from raw text.
166
103
 
167
104
  ```js
168
- await db.recall(query, {
169
- mode: 'hybrid', // 'hybrid' | 'exact' | 'semantic'
170
- filter: r => r.ts > Date.now() - 3600_000, // only last hour
171
- since: Date.now() - 86400_000, // shorthand for time filter
172
- })
105
+ const { Mumpix } = require('mumpix');
173
106
 
174
- await db.recallMany(query, 5, { mode: 'semantic' })
175
- ```
176
-
177
- ### Custom embeddings (OpenAI, Cohere, etc.)
107
+ const db = await Mumpix.open('./agent.mumpix', { consistency: 'eventual' });
178
108
 
179
- ```js
180
- const { Mumpix } = require('mumpix')
181
- const OpenAI = require('openai')
109
+ await db.remember({
110
+ content: 'I set up the smart thermostat on March 1st.',
111
+ workspace: 'home',
112
+ repo: 'infra-home',
113
+ source: 'ops-log',
114
+ ts: Date.parse('2026-03-03T09:10:00Z'),
115
+ });
182
116
 
183
- const client = new OpenAI()
117
+ await db.remember({
118
+ content: 'I set up the mesh network system on March 3rd.',
119
+ workspace: 'home',
120
+ repo: 'infra-home',
121
+ source: 'ops-log',
122
+ ts: Date.parse('2026-03-03T09:00:00Z'),
123
+ });
184
124
 
185
- async function embedFn(texts) {
186
- const res = await client.embeddings.create({ model: 'text-embedding-3-small', input: texts })
187
- return res.data.map(d => d.embedding)
188
- }
125
+ const events = await db.events();
126
+ const index = await db.eventIndex();
127
+ const result = await db.temporalQuery(
128
+ 'Which device did I set up first, the smart thermostat or the mesh network system?'
129
+ );
189
130
 
190
- const db = await Mumpix.open('./agent.mumpix', { consistency: 'strict', embedFn })
191
- // db.recall() and db.recallMany() now use OpenAI embeddings automatically
131
+ console.log(events.length);
132
+ console.log(Array.from(index.byWorkspace.keys()));
133
+ console.log(result.value); // smart thermostat
192
134
  ```
193
135
 
194
- ---
195
-
196
- ## LangChain integration
197
-
198
- ```js
199
- const { Mumpix } = require('mumpix')
200
- const { MumpixVectorStore, MumpixChatMemory, MumpixRetriever } = require('mumpix/src/integrations/langchain')
201
-
202
- const db = await Mumpix.open('./agent.mumpix', { consistency: 'strict' })
136
+ Available temporal package APIs:
203
137
 
204
- // As a VectorStore
205
- const store = new MumpixVectorStore(db)
206
- await store.addTexts(['preference 1', 'preference 2'])
207
- const docs = await store.similaritySearch('query', 4)
138
+ - `db.events({ query?, topK? })`
139
+ - `db.eventIndex({ query?, topK? })`
140
+ - `db.temporalQuery(query, { topK?, now? })`
208
141
 
209
- // As chat memory (stores Human/AI turns, recalls semantically)
210
- const memory = new MumpixChatMemory({ db, k: 4 })
211
-
212
- // As a retriever
213
- const retriever = new MumpixRetriever(db, { k: 5 })
214
- const results = await retriever.getRelevantDocuments('query')
215
- ```
216
-
217
- ## LlamaIndex integration
142
+ Low-level exports are also available for advanced use:
218
143
 
219
144
  ```js
220
- const { Mumpix } = require('mumpix')
221
- const { MumpixIndex, MumpixReader } = require('mumpix/src/integrations/llamaindex')
222
-
223
- const db = await Mumpix.open('./agent.mumpix', { consistency: 'strict' })
224
-
225
- const index = new MumpixIndex(db)
226
- const retriever = index.asRetriever({ topK: 5 })
227
-
228
- await index.insert('User prefers dark mode')
229
- const nodes = await retriever.retrieve('interface preferences')
230
-
231
- // Load all memories as documents
232
- const reader = new MumpixReader(db)
233
- const docs = await reader.loadData()
145
+ const { temporal, temporalEngine, temporalIndexes } = require('mumpix');
234
146
  ```
235
147
 
236
- ---
148
+ These expose:
237
149
 
238
- ## CLI
150
+ - deterministic event operators
151
+ - event materialization
152
+ - event indexing by title, type, workspace, repo, and source
239
153
 
240
- ```bash
241
- # Global install
242
- npm install -g mumpix
154
+ Temporal records support scoped metadata on write:
243
155
 
244
- mumpix remember ./agent.mumpix "User prefers TypeScript"
245
- mumpix recall ./agent.mumpix "what language?"
246
- mumpix search ./agent.mumpix "language" 3
247
- mumpix list ./agent.mumpix
248
- mumpix clear ./agent.mumpix
249
- mumpix stats ./agent.mumpix
250
- mumpix audit ./agent.mumpix # verified mode only
251
- mumpix shell ./agent.mumpix # interactive REPL
252
-
253
- # Options
254
- mumpix recall ./agent.mumpix "query" --consistency=strict
255
- mumpix shell ./compliance.mumpix --consistency=verified
256
- ```
156
+ - `workspace`
157
+ - `repo`
158
+ - `source`
159
+ - `ts`
257
160
 
258
- Note: CLI strict/verified modes are tier-gated the same as SDK/API mode selection.
161
+ ### Consistency modes
259
162
 
260
- ---
163
+ | Mode | Behavior | Use case |
164
+ |---|---|---|
165
+ | `eventual` | fast local writes | prototypes, local tools, development |
166
+ | `strict` | stronger durability path | production agents and application state |
167
+ | `verified` | durability + audit surfaces | regulated, auditable, or compliance-heavy workloads |
261
168
 
262
- ## File format
169
+ ### Verified mode methods
263
170
 
264
- The `.mumpix` file is plain NDJSON — human-readable, portable, no binary parser required:
171
+ ```js
172
+ const db = await Mumpix.open('./verified.mumpix', { consistency: 'verified' });
265
173
 
174
+ await db.audit();
175
+ await db.auditSummary();
176
+ await db.exportAudit();
266
177
  ```
267
- {"v":1,"consistency":"strict","created":1740000000000,"path":"agent.mumpix"}
268
- {"id":1,"content":"User prefers TypeScript","ts":1740000001000,"h":"hmac256:..."}
269
- {"id":2,"content":"Use pnpm workspaces","ts":1740000002000,"h":"hmac256:..."}
270
- ```
271
-
272
- **Crash safety**: Mumpix uses a WAL (`.mumpix.wal`). On write:
273
- 1. Write to WAL
274
- 2. Append to main file and `fdatasync` (strict/verified)
275
- 3. Delete WAL
276
178
 
277
- On open, any leftover WAL is replayed before accepting new writes. A record is either fully present or fully absent — no partial writes.
179
+ ## Developer SDK
278
180
 
279
- **Audit log**: In `verified` mode, an additional `.mumpix.audit` file is created. It is append-only, never modified, and `fdatasync`'d after every entry.
181
+ This package also includes a developer client for Mumpix-backed services.
280
182
 
281
- ---
282
-
283
- ## Examples
284
-
285
- ```bash
286
- node examples/basic.js # Zero-config 5-line demo
287
- node examples/agent-memory.js # Persistent agent preferences (run twice)
288
- node examples/verified-mode.js # Compliance audit log export
289
- npm run verify:claims # executable truth-audit for package claims
290
- ```
183
+ ```js
184
+ const { MumpixDevClient } = require('mumpix');
291
185
 
292
- ### Release maintenance
186
+ const client = new MumpixDevClient({
187
+ baseUrl: 'https://mumpixdb.com/benchmark'
188
+ });
293
189
 
294
- ```bash
295
- # Publish current version and deprecate all older npm versions
296
- npm run release:publish-and-deprecate -- --otp=123456
297
-
298
- # Optional flags:
299
- # --skip-verify skip verify:claims
300
- # --skip-publish only deprecate older versions
301
- # --dry-run no writes to npm
302
- # --remove-old try to unpublish old versions; deprecate on failure
190
+ const health = await client.health();
191
+ const stats = await client.stats();
303
192
  ```
304
193
 
305
- ---
306
-
307
- ## Requirements
308
-
309
- - Node.js >= 18
310
- - Zero runtime dependencies
311
-
312
- ---
313
-
314
- ## License
315
-
316
- Proprietary — COMMERCIAL RESTRICTED. See [LICENSE](LICENSE) for terms.
317
- Copyright © 2026 Mumpix (vdsx.cloud). All Rights Reserved.
194
+ Available client methods:
318
195
 
319
- ---
320
-
321
- ## Licensing & Tiers
322
-
323
- Mumpix uses capability-based tiering: community is for building, paid tiers are for production operation and compliance.
324
-
325
- | Capability | Community (Free) | Developer ($19/mo) | Teams ($79/mo) | Compliance ($5K/mo) |
326
- |---|---|---|---|---|
327
- | `eventual` mode | ✅ | ✅ | ✅ | ✅ |
328
- | `strict` mode | ❌ | ✅ | ✅ | ✅ |
329
- | `verified` mode | | ❌ | ❌ | ✅ |
330
- | Record writes | Unlimited | Unlimited | Unlimited | Unlimited |
331
- | Offline use | | ✅ | ✅ | ✅ |
332
-
333
- ### Tier intent
334
-
335
- - **Community**: build and prototype with full local development flow.
336
- - **Developer**: unlock production durability via `strict`.
337
- - **Teams**: same core durability plus team/commercial operations.
338
- - **Compliance**: regulated workflows with `verified` audit capabilities.
339
-
340
- ### Offline/Air-gapped expiry policy
196
+ - `health()`
197
+ - `remember(content)`
198
+ - `recall(query)`
199
+ - `recallMany(query, k)`
200
+ - `memories()`
201
+ - `clear()`
202
+ - `stats()`
203
+ - `settings()`
204
+ - `updateSettings(patch)`
205
+ - `files()`
206
+ - `readFile(file, { atTs, source })`
207
+ - `timeline(file, { source })`
208
+ - `exportUrl(file, format, { atTs, source })`
209
+ - `roms()`
210
+ - `manualForRom(file)`
211
+ - `manualViewUrl(file, { isolate, v })`
341
212
 
342
- - Monthly licenses use a **45-day offline lease window** by default.
343
- - Enterprise/government/compliance licenses support long/custom lease windows (for example 5-year, 10-year, or custom).
344
- - When a paid license is expired, requested paid modes are automatically downgraded to `eventual` until renewal.
213
+ ## Integrations
345
214
 
346
- You can tune lease windows with environment variables:
215
+ This package includes adapters for:
347
216
 
348
- - `MUMPIX_LICENSE_MAX_DAYS_MONTHLY` (default `45`)
349
- - `MUMPIX_LICENSE_MAX_DAYS_ENTERPRISE` (default `36500`)
350
- - `MUMPIX_LICENSE_MAX_DAYS_GOVERNMENT` (default `36500`)
351
- - `MUMPIX_LICENSE_MAX_DAYS_COMPLIANCE` (default `36500`)
217
+ - LangChain
218
+ - LlamaIndex
352
219
 
353
- ### Using a License Key
220
+ Examples:
354
221
 
355
- ```javascript
356
- const db = await Mumpix.open('./agent.mumpix', {
357
- licenseKey: 'your-license-key-here'
358
- });
222
+ ```bash
223
+ node examples/langchain-adapter.js
224
+ node examples/llamaindex-adapter.js
225
+ node examples/temporal-memory.js
359
226
  ```
360
227
 
361
- Get your key at [mumpixdb.com](https://mumpixdb.com).
362
-
363
- ### No-Key account login (recommended)
364
-
365
- You can link your paid account once and let Mumpix load the local signed license automatically:
228
+ ## CLI
366
229
 
367
230
  ```bash
368
- mumpix auth login # device flow (browser-based)
369
- mumpix auth status
231
+ npm install -g mumpix
370
232
  ```
371
233
 
372
- Advanced login options:
234
+ Then:
373
235
 
374
236
  ```bash
375
- mumpix auth login --token=<account-token> # backend token exchange
376
- mumpix auth login --license=<signed-license> # direct import
377
- mumpix auth logout
237
+ mumpix --help
378
238
  ```
379
239
 
380
- For `--token` exchange, your backend should expose `/api/mumpix/auth/token/exchange` and map account tokens server-side (for example via `MUMPIX_AUTH_TOKEN_MAP`), not raw user IDs.
240
+ ## Package boundary
381
241
 
382
- By default, auth state is stored at `~/.config/mumpix/auth.json` (or `%APPDATA%/mumpix/auth.json` on Windows).
242
+ The `mumpix` package is the MumpixDB package.
383
243
 
384
- ### Install-time auth flow
244
+ It is not:
385
245
 
386
- On `npm install mumpix`, the package runs an install-time auth prompt in interactive terminals:
246
+ - the WYD Code CLI
247
+ - the WYD Code MCP bridge
248
+ - the website product shell
387
249
 
388
- - Press **Enter**: opens Mumpix in your browser and links account access for paid modes.
389
- - Press any other key: install continues in `eventual` mode only.
390
- - If browser auth is cancelled/fails, install continues in `eventual` mode.
250
+ Those are separate layers and separate distributions.
391
251
 
392
- Non-interactive installs (CI/containers) skip this prompt automatically and default to `eventual`.
252
+ ## Links
393
253
 
394
- Auth endpoint fallback:
395
- - CLI tries `https://mumpixdb.com` first, then automatically retries `https://mumpixdb.com/benchmark` on 404.
396
- - Override with `MUMPIX_AUTH_BASE_URL` if your auth API is hosted elsewhere.
254
+ - Website: [https://mumpixdb.com](https://mumpixdb.com)
255
+ - Benchmark: [https://mumpixdb.com/benchmark](https://mumpixdb.com/benchmark)
256
+ - Docs: [https://mumpixdb.com](https://mumpixdb.com)
package/bin/mumpix.js CHANGED
File without changes
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ const { Mumpix } = require('../src/index');
4
+ const {
5
+ MumpixVectorStore,
6
+ MumpixChatMemory,
7
+ MumpixRetriever,
8
+ } = require('../src/integrations/langchain');
9
+
10
+ async function main() {
11
+ const db = await Mumpix.open('./langchain-adapter-example.mumpix', {
12
+ consistency: 'eventual',
13
+ });
14
+
15
+ const store = new MumpixVectorStore(db);
16
+ await store.addTexts([
17
+ 'User likes concise answers',
18
+ 'Project uses TypeScript',
19
+ ]);
20
+
21
+ const docs = await store.similaritySearch('what language is used?', 2);
22
+ console.log('similaritySearch ->', docs);
23
+
24
+ const memory = new MumpixChatMemory({ db, k: 3 });
25
+ await memory.saveContext(
26
+ { input: 'What stack do we use?' },
27
+ { output: 'TypeScript and Node.js' },
28
+ );
29
+ const loaded = await memory.loadMemoryVariables({ input: 'language stack' });
30
+ console.log('chatMemory ->', loaded);
31
+
32
+ const retriever = new MumpixRetriever(db, { k: 2 });
33
+ const relevant = await retriever.getRelevantDocuments('concise');
34
+ console.log('retriever ->', relevant);
35
+
36
+ await db.close();
37
+ }
38
+
39
+ main().catch((error) => {
40
+ console.error('langchain-adapter example failed:', error?.message || String(error));
41
+ process.exit(1);
42
+ });