@raviolelabs/engram-mcp 0.2.2 → 0.4.2

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 (64) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +139 -134
  3. package/SKILL.md +33 -0
  4. package/dist/core/db/index.d.ts.map +1 -1
  5. package/dist/core/db/index.js +27 -1
  6. package/dist/core/db/index.js.map +1 -1
  7. package/dist/core/logger.d.ts.map +1 -1
  8. package/dist/core/logger.js +4 -4
  9. package/dist/core/logger.js.map +1 -1
  10. package/dist/core/server/http.d.ts +3 -0
  11. package/dist/core/server/http.d.ts.map +1 -1
  12. package/dist/core/server/http.js +6 -0
  13. package/dist/core/server/http.js.map +1 -1
  14. package/dist/core/server/instructions.js +1 -1
  15. package/dist/core/server/mcp-handler.d.ts.map +1 -1
  16. package/dist/core/server/mcp-handler.js +28 -1
  17. package/dist/core/server/mcp-handler.js.map +1 -1
  18. package/dist/embeddings/index.d.ts +6 -0
  19. package/dist/embeddings/index.d.ts.map +1 -1
  20. package/dist/embeddings/index.js +31 -3
  21. package/dist/embeddings/index.js.map +1 -1
  22. package/dist/embeddings/providers/engram.d.ts +10 -0
  23. package/dist/embeddings/providers/engram.d.ts.map +1 -1
  24. package/dist/embeddings/providers/engram.js +35 -12
  25. package/dist/embeddings/providers/engram.js.map +1 -1
  26. package/dist/mcp-server/tests/mcp-e2e.test.js +1 -1
  27. package/dist/mcp-server/tests/mcp-e2e.test.js.map +1 -1
  28. package/dist/memory/core/store.d.ts.map +1 -1
  29. package/dist/memory/core/store.js +5 -4
  30. package/dist/memory/core/store.js.map +1 -1
  31. package/dist/memory/modules/team/keystore.d.ts +38 -0
  32. package/dist/memory/modules/team/keystore.d.ts.map +1 -0
  33. package/dist/memory/modules/team/keystore.js +117 -0
  34. package/dist/memory/modules/team/keystore.js.map +1 -0
  35. package/dist/memory/modules/team/tools.d.ts +10 -0
  36. package/dist/memory/modules/team/tools.d.ts.map +1 -0
  37. package/dist/memory/modules/team/tools.js +252 -0
  38. package/dist/memory/modules/team/tools.js.map +1 -0
  39. package/dist/memory/public/tools.d.ts.map +1 -1
  40. package/dist/memory/public/tools.js +33 -5
  41. package/dist/memory/public/tools.js.map +1 -1
  42. package/dist/server/api/memories.d.ts.map +1 -1
  43. package/dist/server/api/memories.js +79 -8
  44. package/dist/server/api/memories.js.map +1 -1
  45. package/dist/server/api/types.d.ts +5 -0
  46. package/dist/server/api/types.d.ts.map +1 -1
  47. package/dist/server/api/types.js +90 -2
  48. package/dist/server/api/types.js.map +1 -1
  49. package/dist/sync/team-sync.d.ts +19 -0
  50. package/dist/sync/team-sync.d.ts.map +1 -0
  51. package/dist/sync/team-sync.js +80 -0
  52. package/dist/sync/team-sync.js.map +1 -0
  53. package/dist/tests/scope-encryption.test.d.ts +2 -0
  54. package/dist/tests/scope-encryption.test.d.ts.map +1 -0
  55. package/dist/tests/scope-encryption.test.js +71 -0
  56. package/dist/tests/scope-encryption.test.js.map +1 -0
  57. package/dist/types.d.ts +5 -1
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/webapp/api/team.d.ts +7 -0
  60. package/dist/webapp/api/team.d.ts.map +1 -0
  61. package/dist/webapp/api/team.js +57 -0
  62. package/dist/webapp/api/team.js.map +1 -0
  63. package/package.json +2 -1
  64. package/CLAUDE.md +0 -232
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Argos Contributors
3
+ Copyright (c) 2026 RavioleLabs
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -2,54 +2,55 @@
2
2
 
3
3
  > Local-first semantic memory layer for AI agents.
4
4
 
5
- EngramMCP is the memory your agents need — it ingests from your real sources (Notes, Conversations, Drive, Notion, YouTube, Obsidian, custom types) and exposes a standard MCP server for any agent runtime (Claude Code, Cursor, custom).
5
+ [![npm](https://img.shields.io/npm/v/@raviolelabs/engram-mcp?label=npm)](https://www.npmjs.com/package/@raviolelabs/engram-mcp)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
7
 
7
- **Local-first**: vectors + content live on your machine. Embeddings via Ollama by default. No cloud required.
8
+ EngramMCP is the memory layer your agents need — ingests from your real sources (notes, conversations, Drive, Notion, YouTube, Obsidian, audio, custom types) and exposes a standard MCP server for any agent runtime (Claude Code, Cursor, custom Anthropic/OpenAI runtimes).
8
9
 
9
- ## Install
10
+ **Local-first**: vectors + content live on your machine. Embeddings via Ollama by default. No cloud required for the local server.
10
11
 
11
- ### macOS / Linux (recommended)
12
+ ---
12
13
 
13
- ```bash
14
- curl -fsSL https://engram-mcp.com/install.sh | sh
15
- ```
14
+ ## Install
16
15
 
17
- This one command: downloads the binary, verifies the checksum, installs Ollama if missing, runs the setup wizard, installs a background service (LaunchAgent on macOS, systemd on Linux), and updates `~/.claude/mcp.json` + `~/.cursor/mcp.json`.
16
+ ### One command (recommended)
18
17
 
19
- ### macOS Homebrew
18
+ Get an invite at **[engram-mcp.com](https://engram-mcp.com)** (signup is free + open). You'll receive a personalized install command by email:
20
19
 
21
20
  ```bash
22
- brew tap RavioleLabs/engram
23
- brew install engram
24
- brew services start engram # auto-start on login
21
+ curl -fsSL https://engram-mcp.com/install/<INVITE_TOKEN> | sh
25
22
  ```
26
23
 
27
- ### Windows (PowerShell)
24
+ This `npm install`s the package, sets up Ollama (auto-installed if missing), pulls `nomic-embed-text`, writes `~/.engram/config.json`, links your account, registers a background service (LaunchAgent on macOS, systemd-user on Linux, NSSM on Windows), updates `~/.claude/mcp.json` + `~/.cursor/mcp.json`, and opens your dashboard at engram-mcp.com — all in under 60 seconds.
28
25
 
29
- ```powershell
30
- iex (Invoke-WebRequest -Uri https://engram-mcp.com/install.ps1).Content
31
- ```
32
-
33
- Installs the binary, registers an NSSM Windows service, and updates `%USERPROFILE%\.claude\mcp.json`.
26
+ ### Manual install (no cloud account needed)
34
27
 
35
- ### Windows winget
28
+ The local server is MIT-licensed and works fully offline. Install via npm:
36
29
 
37
- ```powershell
38
- winget install RavioleLabs.EngramMCP
30
+ ```bash
31
+ npm install -g @raviolelabs/engram-mcp
32
+ # or via npx (no global install):
33
+ npx -y @raviolelabs/engram-mcp --no-http
39
34
  ```
40
35
 
41
- ### Linux .deb (Debian / Ubuntu)
36
+ Then add to your agent's MCP config (`~/.claude/mcp.json` for Claude Code, similar for Cursor):
42
37
 
43
- ```bash
44
- curl -fsSL https://github.com/RavioleLabs/engram-mcp/releases/latest/download/engram-mcp_linux_amd64.deb \
45
- -o /tmp/engram.deb && sudo dpkg -i /tmp/engram.deb
38
+ ```json
39
+ {
40
+ "mcpServers": {
41
+ "engram": {
42
+ "command": "npx",
43
+ "args": ["-y", "@raviolelabs/engram-mcp", "--no-http"]
44
+ }
45
+ }
46
+ }
46
47
  ```
47
48
 
49
+ Restart your agent. You're done — 29 memory tools are now available.
50
+
48
51
  ### Via AI agent (installer MCP server)
49
52
 
50
- Add `installer.engram-mcp.com/mcp` as an HTTP MCP server to your agent runtime, then tell it:
51
- *"Install EngramMCP on this machine."*
52
- It calls `install_engram_mcp` and `verify_engram_installed` tools autonomously.
53
+ Your agent (Claude Code / Cursor / any MCP-aware runtime) can install EngramMCP autonomously:
53
54
 
54
55
  ```json
55
56
  {
@@ -62,11 +63,48 @@ It calls `install_engram_mcp` and `verify_engram_installed` tools autonomously.
62
63
  }
63
64
  ```
64
65
 
65
- After install, run the setup wizard to configure Ollama and write `~/.engram/config.json`:
66
+ Then ask: *"Install EngramMCP on this machine."* The agent calls `install_engram_mcp` and `verify_engram_installed` and runs the script.
66
67
 
67
- ```bash
68
- engram-mcp install:wizard
69
- ```
68
+ ---
69
+
70
+ ## Pricing
71
+
72
+ ### Engram Core — free, forever
73
+
74
+ - Local MCP server, 29 tools
75
+ - All memory types (notes, conversations, Drive, Notion, YouTube, Obsidian, audio)
76
+ - Local embeddings via Ollama (auto-installed)
77
+ - Local Whisper transcription
78
+ - Dashboard via local bridge (engram-mcp.com reads your local store via E2E-encrypted WSS)
79
+ - BYO premium embeddings (Voyage / OpenAI / OpenAI-compatible)
80
+
81
+ ### Engram Pro — $9 / month
82
+
83
+ Everything in Core, plus:
84
+
85
+ - **iOS + Android capture** (voice notes, text, link sharing)
86
+ - **Multi-PC encrypted sync** (E2E — we never see your data in clear)
87
+ - **Always-online cloud dashboard** (view your memory even when your PC is off)
88
+ - **Hosted embeddings** (no Ollama needed) — 10M tokens / month included
89
+ - **Hosted Whisper** transcription — 5h audio / month included
90
+ - **Overage** opt-in at $0.05/M embedding tokens, $0.20/h Whisper. Default: auto-fallback to local Ollama when quota exhausted — no surprise bills.
91
+
92
+ ### Engram Team — *coming soon*
93
+
94
+ Multi-user shared encrypted memory (teams, projects, organizations). Not on sale yet — backend ready, polishing UX.
95
+
96
+ Billing via [Polar](https://polar.sh) (Merchant of Record, handles EU VAT). Cancel anytime.
97
+
98
+ ---
99
+
100
+ ## Open / Closed boundary
101
+
102
+ - **Local server**: MIT, open source, in this repo. Anyone can audit, fork, self-host. No telemetry, no phone-home for the local-only path.
103
+ - **Cloud workers** (`engram-cloud`): proprietary, source-closed. The bridge relay, hosted embeddings, billing, and multi-PC sync are paid SaaS. They handle only encrypted blobs — server-side decryption is mathematically impossible (XChaCha20-Poly1305 + Argon2id passphrase-derived keys).
104
+ - **Browser extension + Mobile apps**: distributed via Chrome Web Store, Apple App Store, Google Play. Source is closed.
105
+ - **Skill plugin** (`engram-skill`): MIT, public — separate repo, optional install for Claude Code users.
106
+
107
+ ---
70
108
 
71
109
  ## Run
72
110
 
@@ -74,13 +112,11 @@ engram-mcp install:wizard
74
112
  engram-mcp --no-http
75
113
  ```
76
114
 
77
- Starts the MCP stdio server (consumed by your agent runtime).
78
- `--no-http` is the **recommended default** — no local web UI, minimal footprint.
115
+ Starts the MCP stdio server (consumed by your agent runtime). `--no-http` is the recommended default — no local web UI, minimal footprint.
79
116
 
80
117
  ### Official dashboard
81
118
 
82
- Visit **[engram-mcp.com](https://engram-mcp.com)** to browse your memories from any browser.
83
- Sign up for a free account, pair your PC with `engram-mcp-pair`, and the online dashboard reads your local store via the Bridge Relay (E2E encrypted — the relay never sees your data).
119
+ Visit **[engram-mcp.com/dashboard](https://engram-mcp.com)** to browse your memories from any browser. Sign up free, pair your PC, and the dashboard reads your local store via the E2E-encrypted Bridge Relay.
84
120
 
85
121
  ### Local dev UI (opt-in)
86
122
 
@@ -92,130 +128,99 @@ Without `--no-http`, also starts:
92
128
  - Local web UI: http://localhost:7777 (dev / admin tool)
93
129
  - HTTP MCP transport: http://localhost:7777/mcp
94
130
 
131
+ ---
132
+
95
133
  ## Quick start for agents
96
134
 
97
- EngramMCP v0.2 exposes **10 clean tools** no noise, no duplicate search verbs.
135
+ EngramMCP exposes **29 agent-friendly MCP tools** with anti-loop contracts. The 10 core memory verbs:
98
136
 
99
137
  | Tool | Purpose |
100
138
  |---|---|
101
- | `remember(content, title, tags, type?)` | Store anything worth keeping |
102
- | `recall(query, types?, limit?)` | Semantic search across all memory |
139
+ | `remember(content, title, tags, scope?, type?)` | Store anything worth keeping |
140
+ | `recall(query, types?, scope?, limit?)` | Semantic search across all memory |
103
141
  | `get(id)` | Fetch full memory by id |
104
142
  | `update(id, ...)` | Edit title/tags/sentiment |
105
- | `forget(id)` | Delete a memory |
106
- | `relate(id, limit?)` | Find connected memories |
107
- | `list_types()` | Discover what types are stored |
108
- | `recent(limit?, types?)` | Latest memories (use at conversation start) |
109
- | `ingest(uri, type?)` | Auto-route file/URL to the right module |
110
- | `suggest_properties(id)` | Instruction for the calling LLM to extract metadata |
111
-
112
- See [SKILL.md](./SKILL.md) for the complete calling-agent guide (tagging strategy, conversation patterns, wikilinks, error handling).
113
-
114
- Admin tools (OAuth, watchers, custom types) are available behind `engram-mcp --admin` or via the integrations page at [engram-mcp.com/dashboard/integrations](https://engram-mcp.com/dashboard/integrations).
143
+ | `forget(id)` | Delete |
144
+ | `relate(id, limit?)` | Find related memories (wikilinks + semantic) |
145
+ | `recent(limit?, types?)` | Most recent items |
146
+ | `list_types()` | Discover available memory types |
147
+ | `ingest(uri, type?)` | Auto-route a file / URL to the right module |
148
+ | `suggest_properties(id)` | Get extraction template for the LLM |
115
149
 
116
- ## What it does
150
+ Plus 3 cross-memory inference tools (unique in the agent-memory space):
151
+ - `analyze_patterns(topic)` — synthesis across many memories
152
+ - `summarize_recent(days?)` — period digest
153
+ - `find_gaps(topic)` — what's missing from your notes
117
154
 
118
- - **Capture from agents**`remember()` stores notes, conversations, or any content
119
- - **Capture from sources** — `ingest()` auto-routes Drive, Notion, YouTube, Obsidian, audio files
120
- - **Search** — `recall()` does parallel semantic fan-out across all types with recency boost
121
- - **Bring your own types** — create custom memory types via admin `create_custom_type`
122
- - **Delegated property extraction** — the calling LLM provides title/tags directly; `suggest_properties` returns content + extraction prompt for backfill
155
+ Full documentation in [SKILL.md](SKILL.md)drop it in your agent's context for optimal usage.
123
156
 
124
- ## Embeddings providers
157
+ ---
125
158
 
126
- | Provider | Tier | Setup |
127
- |---|---|---|
128
- | `ollama` (default) | Free | Auto-installed by wizard |
129
- | `engram` (hosted) | Pro | Paste API key |
130
- | `voyage` | BYO | Sign up at voyageai.com |
131
- | `openai` | BYO | Sign up at openai.com |
132
- | `openai-compatible` | BYO | Any OAI-compatible endpoint |
159
+ ## Architecture
133
160
 
134
- Edit `~/.engram/config.json`:
135
- ```json
136
- {
137
- "embeddings": {
138
- "provider": "voyage",
139
- "model": "voyage-3-large",
140
- "apiKey": "pa-…",
141
- "dimensions": 1024
142
- }
143
- }
161
+ ```
162
+ ┌─ stdio ─┐
163
+ agent runtime ──┤ ├──▶ MCP server (engram-mcp)
164
+ └─ HTTP ─┘ │
165
+
166
+ ┌─ ToolRouter ─┐
167
+ 29 tools │
168
+ └──────┬───────┘
169
+
170
+ ┌─ ModuleRegistry ─┐
171
+ │ notes, conv, │
172
+ │ drive, notion, │
173
+ │ youtube, audio, │
174
+ │ obsidian, │
175
+ │ custom types │
176
+ └────────┬─────────┘
177
+
178
+ ┌─ MemoryStore ─┐
179
+ │ insert │ ──▶ chunk + embed (Ollama)
180
+ │ recall │ ──▶ LanceDB per-type tables
181
+ │ get/update │ ──▶ SQLite + FTS5
182
+ │ forget │ ──▶ ops log (sync source of truth)
183
+ │ relate │
184
+ └────────┬──────┘
185
+ │ events: memory.added/deleted/updated
186
+
187
+ Optional WebSocket → dashboard
144
188
  ```
145
189
 
146
- Then run `npm run reindex` (or click "Reindex" in the dashboard Settings) to re-embed existing memories against the new provider.
147
-
148
- ## Setting up Google Drive / Notion
149
-
150
- Connect Drive and Notion to ingest documents into your local memory store.
151
- Your OAuth credentials are stored in `~/.engram/config.json` and **never sent to engram-mcp.com**.
152
-
153
- ### 1 — Get OAuth credentials
154
-
155
- **Google Drive**
156
-
157
- 1. Open [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials)
158
- 2. Create an **OAuth 2.0 Client ID**, type **Web application**
159
- 3. Add authorized redirect URI: `http://localhost:7777/oauth/callback/drive`
160
- 4. Copy Client ID and Client Secret
161
-
162
- **Notion**
163
-
164
- 1. Open [Notion → My Integrations](https://www.notion.so/my-integrations)
165
- 2. Create a new integration, set redirect URI: `http://localhost:7777/oauth/callback/notion`
166
- 3. Copy Client ID and Client Secret
167
-
168
- ### 2 — Save credentials via the dashboard
169
-
170
- Open [engram-mcp.com/dashboard/integrations](https://engram-mcp.com/dashboard/integrations) **on the device where `engram-mcp` is running**, paste your credentials, and click **Save credentials**.
171
-
172
- ### 3 — Authorize access
173
-
174
- Click **Authorize access** — a browser tab opens for the OAuth consent screen.
175
- After you approve, tokens are saved locally in SQLite (`~/.engram/engram.db`).
190
+ For Pro users, ops are signed (ed25519) + encrypted (XChaCha20-Poly1305) and pushed to the cloud sync channel. The cloud holds only ciphertext + signed metadata.
176
191
 
177
- ### Manual setup (config.json)
192
+ ---
178
193
 
179
- If you prefer, edit `~/.engram/config.json` directly:
194
+ ## Tech stack
180
195
 
181
- ```json
182
- {
183
- "drive": {
184
- "clientId": "YOUR_GOOGLE_CLIENT_ID",
185
- "clientSecret": "YOUR_GOOGLE_CLIENT_SECRET",
186
- "redirectPort": 7777
187
- },
188
- "notion": {
189
- "clientId": "YOUR_NOTION_CLIENT_ID",
190
- "clientSecret": "YOUR_NOTION_CLIENT_SECRET",
191
- "redirectPort": 7777
192
- }
193
- }
194
- ```
195
-
196
- Then run `engram-mcp connect_drive` / `engram-mcp connect_notion` (or use the MCP `connect_drive` / `connect_notion` tools).
196
+ - Node.js >= 22, TypeScript 5.7 strict, ESM
197
+ - MCP SDK 1.28 (stdio + StreamableHTTP)
198
+ - LanceDB 0.27 (per-type vector tables)
199
+ - better-sqlite3 + FTS5
200
+ - Embeddings: Ollama (default), Voyage, OpenAI, OpenAI-compatible, or Engram-hosted
201
+ - Audio: nodejs-whisper (whisper.cpp) or Engram-hosted
202
+ - YouTube: watch-page scrape + yt-dlp fallback
203
+ - Zod everywhere, ULID ids
197
204
 
198
205
  ---
199
206
 
200
- ## Cloud account (Pro — Phase 2)
207
+ ## Status
201
208
 
202
- Connect your PC to your Engram cloud account:
209
+ - **Phase 1**: local MCP server with all memory types
210
+ - ✅ **Phase 2**: mobile + cloud transit + billing + hosted Engram embeddings + multi-PC encrypted sync
211
+ - ⏳ **Phase 3**: Team workspaces — backend ready, UX polish in progress
203
212
 
204
- ```bash
205
- engram-mcp-pair
206
- ```
213
+ ---
207
214
 
208
- The wizard opens a browser to engram-mcp.com, authenticates your account, and stores your JWT + API key locally. After pairing:
215
+ ## Contributing
209
216
 
210
- - **Cloud transit poller** runs every 5 minutes — voice notes, documents, and text sent from your mobile app are automatically ingested into your local memory store.
211
- - **Bridge Relay** lets the engram-mcp.com online dashboard show a live view of your local memory store (proxied via WSS tunnel, no public IP needed).
217
+ Issues, PRs, and Discord chat welcome.
212
218
 
213
- Set `ENGRAM_PASSPHRASE` in your environment to activate the transit poller at server startup (the passphrase derives the master key used for E2E decryption — never stored):
219
+ - Issues: [github.com/RavioleLabs/engram-mcp/issues](https://github.com/RavioleLabs/engram-mcp/issues)
220
+ - Discord: [discord.com/invite/rkgzfnUx](https://discord.com/invite/rkgzfnUx)
221
+ - Maintained by [RavioleLabs](https://raviolelabs.com)
214
222
 
215
- ```bash
216
- export ENGRAM_PASSPHRASE='your strong passphrase'
217
- engram-mcp
218
- ```
223
+ ---
219
224
 
220
225
  ## License
221
226
 
package/SKILL.md CHANGED
@@ -194,6 +194,39 @@ Once `status === "completed"`, the `memory_id` is searchable via `recall()`.
194
194
 
195
195
  **Tip:** You can also just fire `ingest()` and move on — the job completes in the background and becomes searchable automatically. Only poll if you need the result immediately.
196
196
 
197
+ ## Scope selection (Team workspaces)
198
+
199
+ When the user is in a Team workspace, the `remember` and `recall` tools accept an optional `scope` parameter:
200
+ - `scope: "personal"` → stored in user's personal memory (default for ambiguous content)
201
+ - `scope: "team:<id>"` → stored in shared team workspace
202
+
203
+ ### Default behavior: agent decides
204
+
205
+ If the user did NOT explicitly say "share with team" or "this is personal", the agent decides based on content:
206
+
207
+ **Team-scoped signals:**
208
+ - Mentions colleagues by name (other workspace members)
209
+ - References shared projects (workspace project tags)
210
+ - Work decisions, meeting notes, internal policies
211
+ - "We decided", "the team agreed", "our X"
212
+
213
+ **Personal-scoped signals:**
214
+ - "I", "my", "me" (personal preferences, opinions, plans)
215
+ - Health, family, finance (personal-sensitive)
216
+ - Random personal ideas not work-related
217
+
218
+ **Ambiguous → ask user.** If the content could plausibly be either:
219
+ - DON'T just default. Reply "Should I add this to your personal memory or the team workspace?"
220
+ - Wait for user response before calling remember()
221
+
222
+ ### Override via tags
223
+
224
+ If the agent sees `[[team:<name>]]` or `[[personal]]` wikilinks in content, treat them as explicit scope directives.
225
+
226
+ ### Multi-workspace user
227
+
228
+ If user is in multiple teams, the agent must pick the RIGHT team based on content. List workspaces with `list_workspaces()` first. If unclear which team, ask user.
229
+
197
230
  ## Watching sources
198
231
 
199
232
  `watch()` is now on the public surface — no `--admin` flag needed. It requires that the source is already authenticated (run `connect_drive` / `connect_notion` once via admin or the install wizard).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/db/index.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAetC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAGzC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAK9B;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAuBzD;AA+CD,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAS7D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOhF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/db/index.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAetC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAGzC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAK9B;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAuBzD;AAyDD,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAS7D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOhF"}
@@ -60,11 +60,22 @@ function runMigrations(db) {
60
60
  { version: 5, sql: MIGRATION_5 },
61
61
  { version: 6, sql: MIGRATION_6 },
62
62
  { version: 7, sql: MIGRATION_7 },
63
+ { version: 8, sql: MIGRATION_8 },
63
64
  ];
64
65
  for (const m of migrations) {
65
66
  if (m.version > current) {
66
67
  log.info(`Applying migration v${m.version}`);
67
- if (m.version === 7) {
68
+ if (m.version === 8) {
69
+ // SQLite lacks ADD COLUMN IF NOT EXISTS — guard programmatically
70
+ const cols = db.prepare(`PRAGMA table_info(memories)`).all();
71
+ if (!cols.some((c) => c.name === 'scope')) {
72
+ db.exec(`ALTER TABLE memories ADD COLUMN scope TEXT NOT NULL DEFAULT 'personal'`);
73
+ }
74
+ // Workspace registry table
75
+ db.exec(MIGRATION_8_WORKSPACES);
76
+ db.exec(`CREATE INDEX IF NOT EXISTS memories_scope_idx ON memories(scope)`);
77
+ }
78
+ else if (m.version === 7) {
68
79
  // SQLite doesn't support ADD COLUMN IF NOT EXISTS.
69
80
  // Check if poll_count already exists before altering (happens when
70
81
  // migration 6 was applied after the column was added to it).
@@ -96,6 +107,21 @@ export function incrementLamport(db, deviceId) {
96
107
  db.prepare(`UPDATE device_identity SET lamport_ts = ? WHERE device_id = ?`).run(next, deviceId);
97
108
  return next;
98
109
  }
110
+ // Migration 8 is handled programmatically (SQLite lacks ADD COLUMN IF NOT EXISTS).
111
+ // The constant is kept for schema documentation purposes only.
112
+ const MIGRATION_8 = `-- scope column added to memories (handled below)`;
113
+ // Workspace registry: local record of workspaces the user is a member of.
114
+ // Stores the decrypted team key path + metadata for fast lookup.
115
+ // The actual team master keys are stored in ~/.engram/keys/workspaces/<id>.key
116
+ const MIGRATION_8_WORKSPACES = `
117
+ CREATE TABLE IF NOT EXISTS workspaces (
118
+ id TEXT PRIMARY KEY, -- ULID (matches cloud workspace id)
119
+ name TEXT NOT NULL,
120
+ role TEXT NOT NULL DEFAULT 'member',
121
+ owner_email TEXT,
122
+ joined_at TEXT NOT NULL
123
+ );
124
+ `;
99
125
  // Migration 7 is handled programmatically (SQLite lacks ADD COLUMN IF NOT EXISTS)
100
126
  // The constant is kept for schema documentation purposes only.
101
127
  const MIGRATION_7 = `-- poll_count column added to ingest_jobs (handled below)`;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/db/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/db/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAMA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAIpD,eAAO,MAAM,QAAQ,QAAiD,CAAC;AASvE,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAsC/D;AAED,wBAAgB,SAAS,IAAI;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmBpE;AAoHD,QAAA,IAAI,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IACxF,CAAC;AAEP,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,QAE1C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,aAAa,QAExD;AAuBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM;iBAE1B,MAAM,SAAS,OAAO;gBACvB,MAAM,SAAS,OAAO;gBACtB,MAAM,SAAS,OAAO;iBACrB,MAAM,SAAS,OAAO;EAEtC;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAMA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAIpD,eAAO,MAAM,QAAQ,QAAmD,CAAC;AASzE,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAsC/D;AAED,wBAAgB,SAAS,IAAI;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmBpE;AAoHD,QAAA,IAAI,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IACxF,CAAC;AAEP,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,QAE1C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,aAAa,QAExD;AAuBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM;iBAE1B,MAAM,SAAS,OAAO;gBACvB,MAAM,SAAS,OAAO;gBACtB,MAAM,SAAS,OAAO;iBACrB,MAAM,SAAS,OAAO;EAEtC;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -3,8 +3,8 @@ import fs from 'fs';
3
3
  import path from 'path';
4
4
  import os from 'os';
5
5
  // ── Log rotation ──────────────────────────────────────────────────────────────
6
- // Max 10MB per file, keep argos.log + .1..5 (≈60MB total worst case).
7
- export const LOG_FILE = path.join(os.homedir(), '.argos', 'argos.log');
6
+ // Max 10MB per file, keep engram.log + .1..5 (≈60MB total worst case).
7
+ export const LOG_FILE = path.join(os.homedir(), '.engram', 'engram.log');
8
8
  const MAX_BYTES = 10 * 1024 * 1024;
9
9
  const MAX_ROTATIONS = 5;
10
10
  const ANSI_RE = /\x1b\[[0-9;]*m/g;
@@ -22,7 +22,7 @@ export function rotateLogsIfNeeded(nextWriteBytes) {
22
22
  }
23
23
  if (size + nextWriteBytes <= MAX_BYTES)
24
24
  return;
25
- // copytruncate strategy: launchd/systemd hold an open FD to argos.log, so
25
+ // copytruncate strategy: launchd/systemd hold an open FD to engram.log, so
26
26
  // a plain rename would leave the FD writing to the renamed inode forever.
27
27
  // Instead: shift .N → .N+1, copy current → .1, then truncate-in-place so
28
28
  // the inherited FD keeps writing at offset 0.
@@ -111,7 +111,7 @@ function writeToLogFile(line) {
111
111
  /* never break the pipeline on log failure */
112
112
  }
113
113
  }
114
- // If launchd/systemd has wired stdout/stderr directly to argos.log, take over:
114
+ // If launchd/systemd has wired stdout/stderr directly to engram.log, take over:
115
115
  // replace stdout.write/stderr.write so console.log goes through OUR rotating
116
116
  // O_APPEND fd. Otherwise log() would write the line twice (once via console,
117
117
  // once via writeToLogFile). When stdout is a TTY (foreground/dev mode), we
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ export interface WebappOptions {
7
7
  store: MemoryStore;
8
8
  router: ToolRouter;
9
9
  clientDistDir?: string;
10
+ /** Optional: master key for workspace key-wrapping endpoints */
11
+ masterKey?: Uint8Array;
12
+ dataDir?: string;
10
13
  }
11
14
  export declare function startWebapp(options: WebappOptions): {
12
15
  app: Express;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/server/http.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AAiBxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,CAkEzF"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/server/http.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AAkBxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,CA2EzF"}
@@ -16,6 +16,7 @@ import { syncStatusRouter } from '../../server/api/sync-status.js';
16
16
  import { graphApi } from '../../server/api/graph.js';
17
17
  import { integrationsApi } from '../../server/api/integrations.js';
18
18
  import { loadConfig } from '../../config/index.js';
19
+ import { buildTeamRouter } from '../../webapp/api/team.js';
19
20
  const log = createLogger('webapp');
20
21
  export function startWebapp(options) {
21
22
  const app = express();
@@ -58,6 +59,11 @@ export function startWebapp(options) {
58
59
  app.use('/api/graph', graphApi(options.store));
59
60
  app.use('/api/integrations', integrationsApi(() => loadConfig()));
60
61
  app.use(syncStatusRouter());
62
+ // Workspace local API (key wrapping for browser invite flow)
63
+ if (options.masterKey && options.dataDir) {
64
+ app.use('/api/team', buildTeamRouter({ dataDir: options.dataDir, masterKey: options.masterKey }));
65
+ log.info('Workspace /api/team endpoints registered');
66
+ }
61
67
  // MCP HTTP transport
62
68
  mountMcpHttp(app, options.router);
63
69
  // Static client (production)
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/server/http.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ DO NOT use engram FOR:
18
18
 
19
19
  ANTI-PATTERNS:
20
20
  - Calling recall with the verbatim user question. Extract the topic noun first. "what did I say about Alice?" → recall("alice"), NOT recall("what did I say about Alice").
21
- - Skipping engram and grep-ing ~/.claude/projects/*/memory/. Auto-memory is for Claude's INTERNAL context (user role, project conventions), NOT for the user's personal log.
21
+ - Skipping engram and grepping your own internal notes/memory directories for the user's personal data. Those are for YOUR runtime context, not the user's log — call recall instead.
22
22
  - Saving to filesystem when user says "remember". Always use remember(), never write feedback files.
23
23
 
24
24
  WHEN TO REMEMBER:
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-handler.d.ts","sourceRoot":"","sources":["../../../src/core/server/mcp-handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAiBzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAa3D,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,gBAAgB,EAAE,YAAY,EAAE,CAAC,CAAC;IAClH,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjL,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,8BAA8B,EAAE,YAAY,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvH,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,2BAA2B,EAAE,SAAS,CAAC,CAAC,CAAC;CAC/H;AAED,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,4BAA4B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CACpG;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,yBAA8B,GAAG,OAAO,CAAC,aAAa,CAAC,CA8J3H;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C/E"}
1
+ {"version":3,"file":"mcp-handler.d.ts","sourceRoot":"","sources":["../../../src/core/server/mcp-handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAkBzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAa3D,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,gBAAgB,EAAE,YAAY,EAAE,CAAC,CAAC;IAClH,+EAA+E;IAC/E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjL,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,8BAA8B,EAAE,YAAY,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvH,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,2BAA2B,EAAE,SAAS,CAAC,CAAC,CAAC;CAC/H;AAED,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,4BAA4B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CACpG;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,yBAA8B,GAAG,OAAO,CAAC,aAAa,CAAC,CAwL3H;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C/E"}