dotmem 0.0.9 → 0.1.0

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/MEMORY.md CHANGED
@@ -98,7 +98,7 @@ Resolution precedence:
98
98
  persisted by itself.
99
99
  2. **User locator** — `dotmem.location.json` (location metadata only) inside the stable
100
100
  user anchor.
101
- 3. **Default user-scoped storage** — the user anchor itself: `<user-home>/.mem`
101
+ 3. **Default user-scoped storage** — the user anchor itself: `<user-home>/.dotmem`
102
102
  (the platform-neutral canonical form; see the OS examples below), resolved from the
103
103
  current runtime.
104
104
 
@@ -124,14 +124,14 @@ reports completion; the locator never points at a location whose data has not be
124
124
  migrated and verified. The same verification applies to `restore` before the locator is
125
125
  removed.
126
126
 
127
- **Canonical form, platform-neutral.** The user anchor is written `<user-home>/.mem`
127
+ **Canonical form, platform-neutral.** The user anchor is written `<user-home>/.dotmem`
128
128
  everywhere in this documentation. It resolves at runtime to the current OS user's home:
129
129
 
130
130
  ```text
131
131
  Example (OS-specific, illustrative only):
132
132
  Windows: C:\Users\<user>\.mem
133
- Linux: /home/<user>/.mem
134
- macOS: /Users/<user>/.mem
133
+ Linux: /home/<user>/.dotmem
134
+ macOS: /Users/<user>/.dotmem
135
135
  ```
136
136
 
137
137
  The runtime resolves the actual home directory from the OS/environment; no hardcoded
package/PACKAGE.md CHANGED
@@ -21,7 +21,7 @@ and are never bundled).
21
21
  | Item | Where it lives |
22
22
  | --- | --- |
23
23
  | Project history | `.project/project_history.md` (inside the repository, not published) |
24
- | Acquired memory (`.mem` packages) | User storage root (`DOTMEM_STORAGE_ROOT` or `<user-home>/.mem`), created at runtime |
24
+ | Acquired memory (`.mem` packages) | User storage root (`DOTMEM_STORAGE_ROOT` or `<user-home>/.dotmem`), created at runtime |
25
25
 
26
26
  ## Quick start
27
27
 
package/README.md CHANGED
@@ -1,200 +1,251 @@
1
- # dotmem (.mem)
2
-
3
- ![banner](https://raw.githubusercontent.com/passariello/container/refs/heads/main/dotmem/banner.svg)
4
-
5
- AI memory and continuity infrastructure for agents and applications.
6
-
7
- **Built on:** [memorio](https://www.npmjs.com/package/memorio) (state, store, session, IndexedDB, SQLite, cache)
8
-
9
- Dotmem provides structured, queryable, policy-controlled memory for AI agents. It supports experience acquisition, bounded context projection, continuity across sessions, rule-based reasoning, and MCP integration. The memory substrate is independent of a specific model, vendor, host, or conversational client.
10
-
11
- > **Retrieval model**: dotmem uses deterministic lexical/structured retrieval with applicability-based eligibility. It does not use embeddings, vector indexes, or semantic similarity search. The term "AI-oriented" refers to the memory lifecycle and API design (acquisition with evidence/provenance, applicability scoping, policy-gated writes, context projection for LLM consumption), not the underlying retrieval algorithm. For semantic/vector search, pair dotmem with a dedicated embedding store.
12
-
13
- ---
14
-
15
- ## What Dotmem is
16
-
17
- - **Acquired experience**: evidenced, applicability-scoped claims via `discover`, `project`, and `acquire`.
18
- - **Application memory**: typed key/value entries via `remember`, `recall`, `update`, `forget`, and `patch`.
19
- - **Continuity**: snapshots, checkpoints, compaction, and open loops across sessions.
20
- - **Policy**: separate authority domain with tiered enforcement and privileged out-of-band overrides.
21
- - **Agent namespaces**: logically partitioned memory via `dotmem/agent`.
22
- - **Notes and profiles**: short-lived notes and read-only built-in profiles (including the optional Joy profile).
23
- - **MCP and CLI**: stdio MCP server (`dotmem-mcp`) and command-line tools.
24
-
25
- Dotmem is the active owner of memory, continuity, profiles, agents, and MCP capabilities. It is not a wrapper around an external memory service. MCP is an access interface, not the core.
26
-
27
- ---
28
-
29
- ## Install
30
-
31
- ```bash
32
- npm i dotmem
33
- # or
34
- bun i dotmem
35
- # or
36
- pnpm i dotmem
37
- ```
38
-
39
- Requires Node.js >= 18.0.0.
40
-
41
- ---
42
-
43
- ## Quick Start
44
-
45
- The runtime initializes lazily on first call; no explicit `init()` is required.
46
-
47
- ```typescript
48
- import { memory } from 'dotmem'
49
-
50
- // Discover relevant acquired experience for a situation
51
- const discovery = await memory.discover('User needs a language recommendation for a new project', {
52
- depth: 'current',
53
- maxCandidates: 10
54
- })
55
-
56
- // Project a bounded context from discovered claims
57
- const projection = memory.project(discovery, { maxCandidates: 5, maxCharacters: 4000 })
58
- console.info(projection.text)
59
-
60
- // Acquire durable experience (persists across restarts via .mem files)
61
- await memory.acquire({
62
- id: 'user.language-preference',
63
- knowledge: { language: 'TypeScript' },
64
- applicability: { area: 'language-selection' },
65
- evidence: [{ id: 'conv-001', source: 'conversation', observedAt: new Date().toISOString() }],
66
- epistemicType: 'observed'
67
- })
68
- ```
69
-
70
- For agent-namespaced memory, use the `dotmem/agent` subpath:
71
-
72
- ```typescript
73
- import { createAgentMemory } from 'dotmem/agent'
74
-
75
- const agent = createAgentMemory('support-agent')
76
- await agent.remember('greeting', 'Hello! How can I help?', {
77
- type: 'fact',
78
- confidence: 0.9,
79
- scope: 'local',
80
- tags: ['greeting']
81
- })
82
- ```
83
-
84
- > `remember()` with scope `durable` uses IndexedDB and is browser-only. For Node/Bun, use `memory.acquire()`. See [MEMORY.md](./MEMORY.md) for scope details.
85
-
86
- ---
87
-
88
- ## Core capabilities
89
-
90
- - `memory.discover`, `memory.context`, `memory.project` — retrieval and bounded context projection.
91
- - `memory.acquire`, `memory.acquireStaged` — evidenced acquisition with policy evaluation.
92
- - `memory.remember`, `memory.recall`, `memory.update`, `memory.forget`, `memory.patch` — application memory.
93
- - `memory.journal`, `memory.note`, `memory.profile`, `memory.seed`, `memory.policy`, `memory.brain` — sub-facades.
94
- - `continuity` — snapshots, checkpoints, compaction, open loops.
95
- - `security`, `encryption` — RBAC/audit/consent and AES-GCM + PBKDF2 helpers.
96
- - Foundation re-exports: `state`, `store`, `session`, `idb`, `dispatch`, `hlc`.
97
-
98
- ---
99
-
100
- ## Layers
101
-
102
- Dotmem exposes **6 user-facing layers** through its public entry points. `knowledge` and `logic` are not public runtime exports (`logic` is experimental/unverified and not exported; `knowledge` is internal). `profile` is available via `memory.profile.get(id)` and its stability depends on the package semver contract.
103
-
104
- | Layer | Availability | Purpose |
105
- |-------|--------------|---------|
106
- | **memory** | `dotmem` (main) | Key/value memory, acquisition lifecycle, journal, and sub-facades |
107
- | **continuity** | `dotmem` (main) | USER + PROJECT + TASK context composition, snapshots, open loops |
108
- | **agent** | `dotmem/agent` (subpath) | Agent-facing memory with logical namespace partitioning |
109
- | **policy** | `memory.policy` | Policy definition, authority management, three-tier enforcement |
110
- | **profile** | `memory.profile.get(id)` | Identity and persona documents (read-only built-in profiles, including Joy) |
111
- | **note** | `memory.note` | Short-lived notes with tags and origins |
112
-
113
- ### Internal / infrastructure
114
-
115
- | Layer | Purpose | Notes |
116
- |-------|---------|-------|
117
- | **seed** | Development-only initial memory seed | `--dev` required |
118
- | **llm-cache** | LLM response cache types only; no verified runtime implementation | `types/llm-cache.d.ts` |
119
-
120
- > Dotmem re-exports foundational infrastructure: `state` (reactive state), `store` (key/value storage), `idb` (IndexedDB), and `sqlite` (SQL database integration). These are lower-level utilities, not additional AI memory layers.
121
-
122
- ---
123
-
124
- ## Retrieval model
125
-
126
- dotmem uses **deterministic, verifiable retrieval** without embedding-model dependencies:
127
-
128
- - Lexical/structured matching with applicability-based eligibility.
129
- - No embeddings, vector indexes, or semantic similarity search.
130
- - Results are reproducible given the same store and query.
131
-
132
- "AI-oriented" refers to the memory lifecycle and API design (acquisition with evidence/provenance, applicability scoping, policy-gated writes, context projection for LLM consumption), not the underlying retrieval algorithm. For semantic/vector search, pair dotmem with a dedicated embedding store.
133
-
134
- ---
135
-
136
- ## MCP server
137
-
138
- `dotmem-mcp` is the stdio MCP server. It runs on the operator's machine so a connected AI host and the terminal share the same store. Write access is gated by `DOTMEM_MCP_WRITE=1`.
139
-
140
- Canonical launch command (use this form in all configurations):
141
-
142
- ```bash
143
- npx -y -p dotmem dotmem-mcp
144
- ```
145
-
146
- Example (Claude Desktop, read-only by default):
147
-
148
- ```json
149
- {
150
- "mcpServers": {
151
- "dotmem": {
152
- "command": "npx",
153
- "args": ["-y", "-p", "dotmem", "dotmem-mcp"]
154
- }
155
- }
156
- }
157
- ```
158
-
159
- See [MEMORY.md](./MEMORY.md) for the full tool list and write-gating details.
160
-
161
- ---
162
-
163
- ## Optional Joy identity
164
-
165
- Dotmem core is model- and persona-independent. Joy/Jo is an optional agent identity and profile. See [docs/JOY.md](./JOY.md) for activation (exact phrase only), discovery order, and the optional profile.
166
-
167
- ---
168
-
169
- ## Documentation
170
-
171
- | Document | Description |
172
- |----------|-------------|
173
- | [MEMORY.md](./MEMORY.md) | Full memory model: acquisition contract, policy language, epistemic typing, enforcement, continuity, identity |
174
- | [AGENTS.md](./AGENTS.md) | AI agent working rules, activation phrases, complete `memory.*` surface |
175
- | [SECURITY.md](./SECURITY.md) | Encryption, multitenancy, key management, trust model, JHF, sandbox |
176
- | [JOY.md](./JOY.md) | Optional Joy identity, activation matching, discovery order |
177
- | [PACKAGE.md](./PACKAGE.md) | Package contents, full quick-start, dependency graph |
178
- | [LICENSE.md](./LICENSE.md) | License |
179
-
180
- ---
181
-
182
- ## Compatibility
183
-
184
- **License**: MIT (SPDX: `MIT`)
185
-
186
- **Supported runtimes**:
187
- - Node.js >= 18.0.0 (declared in `package.json` engines)
188
- - Bun >= 1.0 (tested in CI)
189
- - Browser (ES2020+ with IndexedDB, localStorage, sessionStorage)
190
- - Deno (compatible, not routinely tested)
191
-
192
- **Tested in CI**: Node.js 20.x, 22.x; Bun 1.x
193
-
194
- **Note**: The `durable` scope in `memory.remember()` uses IndexedDB and is browser-only. For cross-restart persistence in Node/Bun, use `memory.acquire()` which writes `.mem` package files. The `store` and `session` layers fall back to in-memory `Map`s in Node/Bun/Deno and do not survive process restarts.
195
-
196
- ---
197
-
198
- ## License
199
-
1
+ # dotmem (.mem)
2
+
3
+ ![banner](https://raw.githubusercontent.com/passariello/container/refs/heads/main/dotmem/banner.svg)
4
+
5
+ AI memory and continuity infrastructure for agents and applications.
6
+
7
+ Dotmem provides structured, queryable, policy-controlled memory for AI agents. It supports experience acquisition, bounded context projection, continuity across sessions, rule-based reasoning, and MCP integration. The memory substrate is independent of a specific model, vendor, host, or conversational client.
8
+
9
+ > **Retrieval model**: dotmem uses deterministic lexical/structured retrieval with applicability-based eligibility. It does not use embeddings, vector indexes, or semantic similarity search. The term "AI-oriented" refers to the memory lifecycle and API design (acquisition with evidence/provenance, applicability scoping, policy-gated writes, context projection for LLM consumption), not the underlying retrieval algorithm. For semantic/vector search, pair dotmem with a dedicated embedding store.
10
+
11
+ ---
12
+
13
+ ## What Dotmem is
14
+
15
+ - **Acquired experience**: evidenced, applicability-scoped claims via `discover`, `project`, and `acquire`.
16
+ - **Application memory**: typed key/value entries via `remember`, `recall`, `update`, `forget`, and `patch`.
17
+ - **Continuity**: snapshots, checkpoints, compaction, and open loops across sessions.
18
+ - **Policy**: separate authority domain with tiered enforcement and privileged out-of-band overrides.
19
+ - **Agent namespaces**: logically partitioned memory via `dotmem/agent`.
20
+ - **Notes and profiles**: short-lived notes and read-only built-in profiles (including the optional Joy profile).
21
+ - **MCP and CLI**: stdio MCP server (`dotmem-mcp`) and command-line tools.
22
+
23
+ ---
24
+
25
+ Dotmem is the active owner of memory, continuity, profiles, agents, and MCP capabilities. It is not a wrapper around an external memory service. MCP is an access interface, not the core.
26
+
27
+ ---
28
+
29
+ ## Install
30
+
31
+ ```bash
32
+ npm i dotmem
33
+ # or
34
+ bun i dotmem
35
+ # or
36
+ pnpm i dotmem
37
+ ```
38
+
39
+ Requires Node.js >= 18.0.0.
40
+
41
+ ---
42
+
43
+ ## Quick Start (continuos chat)
44
+
45
+ ### Install dotmem global
46
+
47
+ ```sh
48
+ npm i -g dotmem memorio
49
+
50
+ ```
51
+ ### See MCP section or
52
+
53
+ ```chat
54
+ npx -y -p dotmem dotmem-mcp
55
+
56
+ ```
57
+
58
+ ## Quick Start (coding)
59
+
60
+ The runtime initializes lazily on first call; no explicit `init()` is required.
61
+
62
+ ```typescript
63
+ import { memory } from 'dotmem'
64
+
65
+ // Discover relevant acquired experience for a situation
66
+ const discovery = await memory.discover('User needs a language recommendation for a new project', {
67
+ depth: 'current',
68
+ maxCandidates: 10
69
+ })
70
+
71
+ // Project a bounded context from discovered claims
72
+ const projection = memory.project(discovery, { maxCandidates: 5, maxCharacters: 4000 })
73
+ console.info(projection.text)
74
+
75
+ // Acquire durable experience (persists across restarts via .mem files)
76
+ await memory.acquire({
77
+ id: 'user.language-preference',
78
+ knowledge: { language: 'TypeScript' },
79
+ applicability: { area: 'language-selection' },
80
+ evidence: [{ id: 'conv-001', source: 'conversation', observedAt: new Date().toISOString() }],
81
+ epistemicType: 'observed'
82
+ })
83
+ ```
84
+
85
+ For agent-namespaced memory, use the `dotmem/agent` subpath:
86
+
87
+ ```typescript
88
+ import { createAgentMemory } from 'dotmem/agent'
89
+
90
+ const agent = createAgentMemory('support-agent')
91
+ await agent.remember('greeting', 'Hello! How can I help?', {
92
+ type: 'fact',
93
+ confidence: 0.9,
94
+ scope: 'local',
95
+ tags: ['greeting']
96
+ })
97
+ ```
98
+
99
+ > `remember()` with scope `durable` uses IndexedDB and is browser-only. For Node/Bun, use `memory.acquire()`. See [MEMORY.md](./MEMORY.md) for scope details.
100
+
101
+ ---
102
+
103
+ ## Core capabilities
104
+
105
+ - `memory.discover`, `memory.context`, `memory.project` — retrieval and bounded context projection.
106
+ - `memory.acquire`, `memory.acquireStaged` — evidenced acquisition with policy evaluation.
107
+ - `memory.remember`, `memory.recall`, `memory.update`, `memory.forget`, `memory.patch` — application memory.
108
+ - `memory.journal`, `memory.note`, `memory.profile`, `memory.seed`, `memory.policy`, `memory.brain` — sub-facades.
109
+ - `continuity` — snapshots, checkpoints, compaction, open loops.
110
+ - `security`, `encryption` — RBAC/audit/consent and AES-GCM + PBKDF2 helpers.
111
+ - Foundation re-exports: `state`, `store`, `session`, `idb`, `dispatch`, `hlc`.
112
+
113
+ ---
114
+
115
+ ## Layers
116
+
117
+ Dotmem exposes **6 user-facing layers** through its public entry points. `knowledge` and `logic` are not public runtime exports (`logic` is experimental/unverified and not exported; `knowledge` is internal). `profile` is available via `memory.profile.get(id)` and its stability depends on the package semver contract.
118
+
119
+ | Layer | Availability | Purpose |
120
+ |-------|--------------|---------|
121
+ | **memory** | `dotmem` (main) | Key/value memory, acquisition lifecycle, journal, and sub-facades |
122
+ | **continuity** | `dotmem` (main) | USER + PROJECT + TASK context composition, snapshots, open loops |
123
+ | **agent** | `dotmem/agent` (subpath) | Agent-facing memory with logical namespace partitioning |
124
+ | **policy** | `memory.policy` | Policy definition, authority management, three-tier enforcement |
125
+ | **profile** | `memory.profile.get(id)` | Identity and persona documents (read-only built-in profiles, including Joy) |
126
+ | **note** | `memory.note` | Short-lived notes with tags and origins |
127
+
128
+ ### Internal / infrastructure
129
+
130
+ | Layer | Purpose | Notes |
131
+ |-------|---------|-------|
132
+ | **seed** | Development-only initial memory seed | `--dev` required |
133
+ | **llm-cache** | LLM response cache types only; no verified runtime implementation | `types/llm-cache.d.ts` |
134
+
135
+ > Dotmem re-exports foundational infrastructure: `state` (reactive state), `store` (key/value storage), `idb` (IndexedDB), and `sqlite` (SQL database integration). These are lower-level utilities, not additional AI memory layers.
136
+
137
+ ---
138
+
139
+ ## Retrieval model
140
+
141
+ dotmem uses **deterministic, verifiable retrieval** without embedding-model dependencies:
142
+
143
+ - Lexical/structured matching with applicability-based eligibility.
144
+ - No embeddings, vector indexes, or semantic similarity search.
145
+ - Results are reproducible given the same store and query.
146
+
147
+ "AI-oriented" refers to the memory lifecycle and API design (acquisition with evidence/provenance, applicability scoping, policy-gated writes, context projection for LLM consumption), not the underlying retrieval algorithm. For semantic/vector search, pair dotmem with a dedicated embedding store.
148
+
149
+ ---
150
+
151
+ ## MCP server
152
+
153
+ `dotmem-mcp` is the stdio MCP server. It runs on the operator's machine so a connected AI host and the terminal share the same store. Write access is gated by `DOTMEM_MCP_WRITE=1`.
154
+
155
+ Canonical launch command (use this form in all configurations):
156
+
157
+ ```bash
158
+ npx -y -p dotmem-mcp
159
+ ```
160
+
161
+ ### Claude Desktop
162
+
163
+ ```json
164
+ {
165
+ "mcpServers": {
166
+ "dotmem": {
167
+ "command": "npx",
168
+ "args": ["-y", "-p", "dotmem-mcp"],
169
+ "env": { "DOTMEM_MCP_WRITE": "1" }
170
+ }
171
+ }
172
+ }
173
+ ```
174
+
175
+ ### Claude Code
176
+
177
+ ```bash
178
+ claude mcp add --env DOTMEM_MCP_WRITE=1 --transport stdio dotmem -- npx -y -p dotmem-mcp
179
+ ```
180
+
181
+ ### Kilo / OpenCode
182
+
183
+ ```jsonc
184
+ "mcp": {
185
+ "dotmem": {
186
+ "type": "local",
187
+ "command": ["npx", "-y", "-p", "dotmem-mcp"],
188
+ "enabled": true,
189
+ "environment": { "DOTMEM_MCP_WRITE": "1" }
190
+ }
191
+ }
192
+ ```
193
+
194
+ ### Windows Command Prompt (cmd.exe)
195
+
196
+ In Windows `cmd.exe`, `npx` may not be directly executable as a command. Use `cmd /c npx`:
197
+
198
+ ```json
199
+ {
200
+ "mcpServers": {
201
+ "dotmem": {
202
+ "command": "cmd",
203
+ "args": ["/c", "npx", "-y", "-p", "dotmem-mcp"],
204
+ "env": { "DOTMEM_MCP_WRITE": "1" }
205
+ }
206
+ }
207
+ }
208
+ ```
209
+
210
+ See [MEMORY.md](./MEMORY.md) for the full tool list and write-gating details.
211
+
212
+ ---
213
+
214
+ ## Optional Joy identity
215
+
216
+ Dotmem core is model- and persona-independent. Joy/Jo is an optional agent identity and profile. See [docs/JOY.md](./JOY.md) for activation (exact phrase only), discovery order, and the optional profile.
217
+
218
+ ---
219
+
220
+ ## Documentation
221
+
222
+ | Document | Description |
223
+ |----------|-------------|
224
+ | [MEMORY.md](./MEMORY.md) | Full memory model: acquisition contract, policy language, epistemic typing, enforcement, continuity, identity |
225
+ | [AGENTS.md](./AGENTS.md) | AI agent working rules, activation phrases, complete `memory.*` surface |
226
+ | [SECURITY.md](./SECURITY.md) | Encryption, multitenancy, key management, trust model, JHF, sandbox |
227
+ | [JOY.md](./JOY.md) | Optional Joy identity, activation matching, discovery order |
228
+ | [PACKAGE.md](./PACKAGE.md) | Package contents, full quick-start, dependency graph |
229
+ | [LICENSE.md](./LICENSE.md) | License |
230
+
231
+ ---
232
+
233
+ ## Compatibility
234
+
235
+ **License**: MIT (SPDX: `MIT`)
236
+
237
+ **Supported runtimes**:
238
+ - Node.js >= 18.0.0 (declared in `package.json` engines)
239
+ - Bun >= 1.0 (tested in CI)
240
+ - Browser (ES2020+ with IndexedDB, localStorage, sessionStorage)
241
+ - Deno (compatible, not routinely tested)
242
+
243
+ **Tested in CI**: Node.js 20.x, 22.x; Bun 1.x
244
+
245
+ **Note**: The `durable` scope in `memory.remember()` uses IndexedDB and is browser-only. For cross-restart persistence in Node/Bun, use `memory.acquire()` which writes `.mem` package files. The `store` and `session` layers fall back to in-memory `Map`s in Node/Bun/Deno and do not survive process restarts.
246
+
247
+ ---
248
+
249
+ ## License
250
+
200
251
  MIT (c) 2026 Dario Passariello.
package/agent.cjs CHANGED
@@ -18,6 +18,18 @@ var __export = (target, all) => {
18
18
  __defProp(target, name, { get: all[name], enumerable: true });
19
19
  };
20
20
 
21
+ // suppress-idb-warning.ts
22
+ var orig;
23
+ var init_suppress_idb_warning = __esm({
24
+ "suppress-idb-warning.ts"() {
25
+ orig = console.warn.bind(console);
26
+ console.warn = (...args) => {
27
+ if (typeof args[0] === "string" && args[0].includes("IndexedDB is not available")) return;
28
+ orig(...args);
29
+ };
30
+ }
31
+ });
32
+
21
33
  // core/idb.ts
22
34
  var idb;
23
35
  var init_idb = __esm({
@@ -46,6 +58,7 @@ __export(global_exports, {
46
58
  var getPlatform;
47
59
  var init_global = __esm({
48
60
  "core/global.ts"() {
61
+ init_suppress_idb_warning();
49
62
  init_idb();
50
63
  getPlatform = /* @__PURE__ */ __name(() => {
51
64
  const proc = globalThis.process;
package/agent.js CHANGED
@@ -16,6 +16,18 @@ var __export = (target, all) => {
16
16
  __defProp(target, name, { get: all[name], enumerable: true });
17
17
  };
18
18
 
19
+ // suppress-idb-warning.ts
20
+ var orig;
21
+ var init_suppress_idb_warning = __esm({
22
+ "suppress-idb-warning.ts"() {
23
+ orig = console.warn.bind(console);
24
+ console.warn = (...args) => {
25
+ if (typeof args[0] === "string" && args[0].includes("IndexedDB is not available")) return;
26
+ orig(...args);
27
+ };
28
+ }
29
+ });
30
+
19
31
  // core/idb.ts
20
32
  var idb;
21
33
  var init_idb = __esm({
@@ -44,6 +56,7 @@ __export(global_exports, {
44
56
  var getPlatform;
45
57
  var init_global = __esm({
46
58
  "core/global.ts"() {
59
+ init_suppress_idb_warning();
47
60
  init_idb();
48
61
  getPlatform = /* @__PURE__ */ __name(() => {
49
62
  const proc = globalThis.process;
package/bin/cli.cjs CHANGED
@@ -9,6 +9,11 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
10
  var process__default = /*#__PURE__*/_interopDefault(process);
11
11
 
12
+ var __origWarn = console.warn.bind(console);
13
+ console.warn = (...args2) => {
14
+ if (typeof args2[0] === "string" && args2[0].includes("IndexedDB is not available")) return;
15
+ __origWarn(...args2);
16
+ };
12
17
  var rawArgs = process__default.default.argv.slice(2);
13
18
  var storageRootFlagIndex = rawArgs.indexOf("--storage-root");
14
19
  var hasStorageRootFlag = storageRootFlagIndex !== -1;
package/bin/cli.js CHANGED
@@ -2,6 +2,11 @@
2
2
  import process from 'process';
3
3
  import { fileURLToPath } from 'url';
4
4
 
5
+ var __origWarn = console.warn.bind(console);
6
+ console.warn = (...args2) => {
7
+ if (typeof args2[0] === "string" && args2[0].includes("IndexedDB is not available")) return;
8
+ __origWarn(...args2);
9
+ };
5
10
  var rawArgs = process.argv.slice(2);
6
11
  var storageRootFlagIndex = rawArgs.indexOf("--storage-root");
7
12
  var hasStorageRootFlag = storageRootFlagIndex !== -1;
package/bin/mcp.cjs CHANGED
@@ -7,6 +7,11 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
8
  var process__default = /*#__PURE__*/_interopDefault(process);
9
9
 
10
+ var __origWarn = console.warn.bind(console);
11
+ console.warn = (...args) => {
12
+ if (typeof args[0] === "string" && args[0].includes("IndexedDB is not available")) return;
13
+ __origWarn(...args);
14
+ };
10
15
  var nodeMajorVersion = Number.parseInt(process__default.default.versions.node.split(".")[0] ?? "", 10);
11
16
  if (!Number.isInteger(nodeMajorVersion) || nodeMajorVersion < 20) {
12
17
  console.error("dotmem-mcp requires Node.js >=20; the normal dotmem runtime remains compatible with its declared Node.js version.");
package/bin/mcp.js CHANGED
@@ -1,6 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import process from 'process';
3
3
 
4
+ var __origWarn = console.warn.bind(console);
5
+ console.warn = (...args) => {
6
+ if (typeof args[0] === "string" && args[0].includes("IndexedDB is not available")) return;
7
+ __origWarn(...args);
8
+ };
4
9
  var nodeMajorVersion = Number.parseInt(process.versions.node.split(".")[0] ?? "", 10);
5
10
  if (!Number.isInteger(nodeMajorVersion) || nodeMajorVersion < 20) {
6
11
  console.error("dotmem-mcp requires Node.js >=20; the normal dotmem runtime remains compatible with its declared Node.js version.");