engram-mcp-server 1.9.2 → 1.11.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/README.md +319 -23
- package/dist/constants.d.ts +10 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +29 -1
- package/dist/constants.js.map +1 -1
- package/dist/database.d.ts +3 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +4 -1
- package/dist/database.js.map +1 -1
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +42 -0
- package/dist/errors.js.map +1 -1
- package/dist/installer/ide-configs.d.ts.map +1 -1
- package/dist/installer/ide-configs.js +67 -18
- package/dist/installer/ide-configs.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +155 -66
- package/dist/installer/index.js.map +1 -1
- package/dist/knowledge/checklists.d.ts +4 -0
- package/dist/knowledge/checklists.d.ts.map +1 -0
- package/dist/knowledge/checklists.js +84 -0
- package/dist/knowledge/checklists.js.map +1 -0
- package/dist/knowledge/conventions.d.ts +7 -0
- package/dist/knowledge/conventions.d.ts.map +1 -0
- package/dist/knowledge/conventions.js +57 -0
- package/dist/knowledge/conventions.js.map +1 -0
- package/dist/knowledge/estimation.d.ts +4 -0
- package/dist/knowledge/estimation.d.ts.map +1 -0
- package/dist/knowledge/estimation.js +72 -0
- package/dist/knowledge/estimation.js.map +1 -0
- package/dist/knowledge/index.d.ts +84 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +187 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/instructions.d.ts +4 -0
- package/dist/knowledge/instructions.d.ts.map +1 -0
- package/dist/knowledge/instructions.js +33 -0
- package/dist/knowledge/instructions.js.map +1 -0
- package/dist/knowledge/phases.d.ts +4 -0
- package/dist/knowledge/phases.d.ts.map +1 -0
- package/dist/knowledge/phases.js +127 -0
- package/dist/knowledge/phases.js.map +1 -0
- package/dist/knowledge/principles.d.ts +4 -0
- package/dist/knowledge/principles.d.ts.map +1 -0
- package/dist/knowledge/principles.js +50 -0
- package/dist/knowledge/principles.js.map +1 -0
- package/dist/knowledge/types.d.ts +74 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +5 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +103 -0
- package/dist/migrations.js.map +1 -1
- package/dist/modes/universal.d.ts.map +1 -1
- package/dist/modes/universal.js +23 -1
- package/dist/modes/universal.js.map +1 -1
- package/dist/repositories/conventions.repo.d.ts +9 -1
- package/dist/repositories/conventions.repo.d.ts.map +1 -1
- package/dist/repositories/conventions.repo.js +31 -2
- package/dist/repositories/conventions.repo.js.map +1 -1
- package/dist/repositories/index.d.ts +3 -0
- package/dist/repositories/index.d.ts.map +1 -1
- package/dist/repositories/index.js +3 -0
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/observations.repo.d.ts +15 -0
- package/dist/repositories/observations.repo.d.ts.map +1 -0
- package/dist/repositories/observations.repo.js +35 -0
- package/dist/repositories/observations.repo.js.map +1 -0
- package/dist/services/event-trigger.service.d.ts +15 -0
- package/dist/services/event-trigger.service.d.ts.map +1 -1
- package/dist/services/event-trigger.service.js +79 -0
- package/dist/services/event-trigger.service.js.map +1 -1
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-registry.service.d.ts +29 -1
- package/dist/services/instance-registry.service.d.ts.map +1 -1
- package/dist/services/instance-registry.service.js +97 -2
- package/dist/services/instance-registry.service.js.map +1 -1
- package/dist/services/pm-diagnostics.d.ts +46 -0
- package/dist/services/pm-diagnostics.d.ts.map +1 -0
- package/dist/services/pm-diagnostics.js +88 -0
- package/dist/services/pm-diagnostics.js.map +1 -0
- package/dist/services/workflow-advisor.service.d.ts +70 -0
- package/dist/services/workflow-advisor.service.d.ts.map +1 -0
- package/dist/services/workflow-advisor.service.js +254 -0
- package/dist/services/workflow-advisor.service.js.map +1 -0
- package/dist/tools/dispatcher-admin.d.ts.map +1 -1
- package/dist/tools/dispatcher-admin.js +135 -18
- package/dist/tools/dispatcher-admin.js.map +1 -1
- package/dist/tools/dispatcher-memory.d.ts.map +1 -1
- package/dist/tools/dispatcher-memory.js +905 -826
- package/dist/tools/dispatcher-memory.js.map +1 -1
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +15 -1
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +125 -24
- package/dist/tools/sessions.js.map +1 -1
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +21 -0
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -194,7 +194,7 @@ npm install -g engram-mcp-server
|
|
|
194
194
|
engram install --ide <your-ide>
|
|
195
195
|
```
|
|
196
196
|
|
|
197
|
-
Available `--ide` values: `
|
|
197
|
+
Available `--ide` values: `vscode`, `cursor`, `windsurf`, `antigravity`, `claudecode`, `claudedesktop`, `visualstudio`, `cline`, `roocode`, `geminicli`, `firebasestudio`, `trae`, `jetbrains`
|
|
198
198
|
|
|
199
199
|
> **Note:** During install you may see `npm warn deprecated prebuild-install@7.1.3`. This is a cosmetic warning from a transitive dependency used to download SQLite prebuilt binaries. It does not affect functionality and is safe to ignore.
|
|
200
200
|
|
|
@@ -271,54 +271,240 @@ The original separate proxy package for maximum token efficiency. Still works; p
|
|
|
271
271
|
|
|
272
272
|
> The agent should call `engram({"action":"start"})` first. The response includes `tool_catalog` with all available actions.
|
|
273
273
|
|
|
274
|
+
### Engram Database Location
|
|
275
|
+
|
|
276
|
+
Engram maintains a **SQLite database** — one per project — that stores all agent memory.
|
|
277
|
+
|
|
278
|
+
| How you run Engram | Database path |
|
|
279
|
+
|---|---|
|
|
280
|
+
| Project-local MCP config (default) | `<project-root>/.engram/memory.db` — auto-detected via git root, `.engram` marker, `package.json` walk-up |
|
|
281
|
+
| No project root found (non-project dir) | `~/.engram/global/memory.db` — global fallback, logged as a warning |
|
|
282
|
+
| `npm install -g engram-mcp-server` + global IDE config (no `--project-root`) | `~/.engram/global/memory.db` — global memory shared across all projects |
|
|
283
|
+
|
|
284
|
+
> **`--project-root` flag** — The most reliable way to pin the database. IDEs that support workspace variables (VS Code, Cursor, Visual Studio, Trae) inject this automatically. For IDEs without workspace variable support (Windsurf, Antigravity, Gemini CLI, Claude Desktop), add `"--project-root=/absolute/path/to/your/project"` to the `args` array manually.
|
|
285
|
+
>
|
|
286
|
+
> `npm install -g engram-mcp-server` makes the `engram` command available globally. When Engram is configured in a **user-level** (global) IDE config without `--project-root`, it cannot detect a specific project and initializes its database at the global fallback `~/.engram/global/memory.db`. This is intentional — a global config serves all projects simultaneously.
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
274
290
|
### Option 5: Manual Configuration
|
|
275
291
|
|
|
276
|
-
If you prefer to configure manually, find your IDE below
|
|
292
|
+
If you prefer to configure manually, find your IDE below. Each entry shows the correct config file path and JSON format.
|
|
293
|
+
|
|
294
|
+
> **Config key note:** VS Code, Visual Studio, and JetBrains use `"servers"` as the top-level key. All other IDEs use `"mcpServers"`.
|
|
295
|
+
|
|
296
|
+
<details>
|
|
297
|
+
<summary><strong>VS Code (GitHub Copilot)</strong></summary>
|
|
298
|
+
|
|
299
|
+
**Local (recommended)** — create `.vscode/mcp.json` in your project root:
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
"servers": {
|
|
304
|
+
"engram": {
|
|
305
|
+
"type": "stdio",
|
|
306
|
+
"command": "npx",
|
|
307
|
+
"args": ["-y", "engram-mcp-server", "--project-root=${workspaceFolder}"]
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**Global** — `%APPDATA%\Code\User\mcp.json` (Windows) / `~/Library/Application Support/Code/User/mcp.json` (Mac) / `~/.config/Code/User/mcp.json` (Linux):
|
|
314
|
+
|
|
315
|
+
```json
|
|
316
|
+
{
|
|
317
|
+
"servers": {
|
|
318
|
+
"engram": {
|
|
319
|
+
"type": "stdio",
|
|
320
|
+
"command": "npx",
|
|
321
|
+
"args": ["-y", "engram-mcp-server"]
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
> `${workspaceFolder}` is expanded by VS Code at spawn time — the database is always placed at the correct project root automatically.
|
|
328
|
+
|
|
329
|
+
</details>
|
|
330
|
+
|
|
331
|
+
<details>
|
|
332
|
+
<summary><strong>Cursor</strong></summary>
|
|
333
|
+
|
|
334
|
+
**Local** — `.cursor/mcp.json` in your project root:
|
|
335
|
+
|
|
336
|
+
```json
|
|
337
|
+
{
|
|
338
|
+
"mcpServers": {
|
|
339
|
+
"engram": {
|
|
340
|
+
"command": "npx",
|
|
341
|
+
"args": ["-y", "engram-mcp-server", "--project-root=${workspaceFolder}"]
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Global** — `~/.cursor/mcp.json`:
|
|
348
|
+
|
|
349
|
+
```json
|
|
350
|
+
{
|
|
351
|
+
"mcpServers": {
|
|
352
|
+
"engram": {
|
|
353
|
+
"command": "npx",
|
|
354
|
+
"args": ["-y", "engram-mcp-server"]
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
> `${workspaceFolder}` is supported in Cursor's `args` field and is expanded at spawn time.
|
|
361
|
+
|
|
362
|
+
</details>
|
|
363
|
+
|
|
364
|
+
<details>
|
|
365
|
+
<summary><strong>Windsurf</strong></summary>
|
|
366
|
+
|
|
367
|
+
**Global** — `~/.codeium/windsurf/mcp_config.json` (Windsurf only supports a single global config):
|
|
368
|
+
|
|
369
|
+
```json
|
|
370
|
+
{
|
|
371
|
+
"mcpServers": {
|
|
372
|
+
"engram": {
|
|
373
|
+
"command": "npx",
|
|
374
|
+
"args": ["-y", "engram-mcp-server", "--project-root=/absolute/path/to/your/project"]
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
> Windsurf does not expand workspace-folder variables in MCP args. Replace `/absolute/path/to/your/project` with the actual path, or omit `--project-root` to let Engram auto-detect it (requires the IDE to spawn the process from within a project directory).
|
|
381
|
+
|
|
382
|
+
</details>
|
|
383
|
+
|
|
384
|
+
<details>
|
|
385
|
+
<summary><strong>Antigravity IDE (Gemini)</strong></summary>
|
|
386
|
+
|
|
387
|
+
**Global** — `~/.gemini/antigravity/mcp_config.json`:
|
|
388
|
+
|
|
389
|
+
```json
|
|
390
|
+
{
|
|
391
|
+
"mcpServers": {
|
|
392
|
+
"engram": {
|
|
393
|
+
"command": "npx",
|
|
394
|
+
"args": ["-y", "engram-mcp-server", "--project-root=/absolute/path/to/your/project"]
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
> Antigravity IDE (the desktop app) uses a separate config file from the Gemini CLI. Replace `/absolute/path/to/your/project` with your project path. Antigravity does not expand workspace-folder variables in MCP args.
|
|
401
|
+
|
|
402
|
+
</details>
|
|
277
403
|
|
|
278
404
|
<details>
|
|
279
405
|
<summary><strong>Claude Code (CLI)</strong></summary>
|
|
280
406
|
|
|
281
|
-
|
|
407
|
+
**Via CLI (user-level, recommended):**
|
|
282
408
|
|
|
283
409
|
```bash
|
|
410
|
+
# Windows
|
|
284
411
|
claude mcp add-json --scope=user engram '{"type":"stdio","command":"cmd","args":["/c","npx","-y","engram-mcp-server"]}'
|
|
412
|
+
|
|
413
|
+
# Mac / Linux
|
|
414
|
+
claude mcp add-json --scope=user engram '{"type":"stdio","command":"npx","args":["-y","engram-mcp-server"]}'
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
**Project-level** — `.mcp.json` in your project root:
|
|
418
|
+
|
|
419
|
+
```json
|
|
420
|
+
{
|
|
421
|
+
"mcpServers": {
|
|
422
|
+
"engram": {
|
|
423
|
+
"type": "stdio",
|
|
424
|
+
"command": "npx",
|
|
425
|
+
"args": ["-y", "engram-mcp-server"]
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
285
429
|
```
|
|
286
430
|
|
|
287
|
-
|
|
431
|
+
**User-level** — `~/.claude.json`:
|
|
432
|
+
|
|
433
|
+
```json
|
|
434
|
+
{
|
|
435
|
+
"mcpServers": {
|
|
436
|
+
"engram": {
|
|
437
|
+
"type": "stdio",
|
|
438
|
+
"command": "npx",
|
|
439
|
+
"args": ["-y", "engram-mcp-server"]
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
> Claude Code auto-detects the project root from the working directory when the server is spawned. Add `"--project-root=/path/to/project"` to `args` to pin it explicitly.
|
|
288
446
|
|
|
289
447
|
</details>
|
|
290
448
|
|
|
291
449
|
<details>
|
|
292
450
|
<summary><strong>Claude Desktop</strong></summary>
|
|
293
451
|
|
|
294
|
-
|
|
452
|
+
Edit `claude_desktop_config.json`:
|
|
295
453
|
|
|
296
454
|
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
297
455
|
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
456
|
+
- **Linux:** `~/.config/Claude/claude_desktop_config.json`
|
|
298
457
|
|
|
299
458
|
```json
|
|
300
459
|
{
|
|
301
460
|
"mcpServers": {
|
|
302
461
|
"engram": {
|
|
303
462
|
"command": "npx",
|
|
304
|
-
"args": ["-y", "engram-mcp-server"]
|
|
463
|
+
"args": ["-y", "engram-mcp-server", "--project-root=/absolute/path/to/your/project"]
|
|
305
464
|
}
|
|
306
465
|
}
|
|
307
466
|
}
|
|
308
467
|
```
|
|
309
468
|
|
|
469
|
+
**Windows** (use `cmd` wrapper — `npx` is a `.cmd` file on Windows):
|
|
470
|
+
|
|
471
|
+
```json
|
|
472
|
+
{
|
|
473
|
+
"mcpServers": {
|
|
474
|
+
"engram": {
|
|
475
|
+
"command": "cmd",
|
|
476
|
+
"args": ["/c", "npx", "-y", "engram-mcp-server", "--project-root=C:\\path\\to\\your\\project"]
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
> Claude Desktop is a global app with no concept of a current project. Always specify `--project-root` to direct Engram to the correct project database. Without it, Engram falls back to `~/.engram/global/memory.db`.
|
|
483
|
+
|
|
310
484
|
</details>
|
|
311
485
|
|
|
312
486
|
<details>
|
|
313
|
-
<summary><strong>
|
|
487
|
+
<summary><strong>Visual Studio 2022 / 2026</strong></summary>
|
|
314
488
|
|
|
315
|
-
|
|
489
|
+
**Local (recommended)** — `.vs/mcp.json` or `.mcp.json` in your solution root:
|
|
490
|
+
|
|
491
|
+
```json
|
|
492
|
+
{
|
|
493
|
+
"servers": {
|
|
494
|
+
"engram": {
|
|
495
|
+
"command": "npx",
|
|
496
|
+
"args": ["-y", "engram-mcp-server", "--project-root=${SolutionDir}"]
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
**Global** — `%USERPROFILE%\.mcp.json`:
|
|
316
503
|
|
|
317
504
|
```json
|
|
318
505
|
{
|
|
319
506
|
"servers": {
|
|
320
507
|
"engram": {
|
|
321
|
-
"type": "stdio",
|
|
322
508
|
"command": "npx",
|
|
323
509
|
"args": ["-y", "engram-mcp-server"]
|
|
324
510
|
}
|
|
@@ -326,12 +512,18 @@ Create `.vscode/mcp.json` in your project root, or add to your global user `sett
|
|
|
326
512
|
}
|
|
327
513
|
```
|
|
328
514
|
|
|
515
|
+
> Note: Visual Studio uses `"servers"` (not `"mcpServers"`) as the config key. `${SolutionDir}` is expanded by Visual Studio at spawn time.
|
|
516
|
+
|
|
329
517
|
</details>
|
|
330
518
|
|
|
331
519
|
<details>
|
|
332
|
-
<summary><strong>
|
|
520
|
+
<summary><strong>Cline</strong></summary>
|
|
521
|
+
|
|
522
|
+
Open the Cline extension settings → MCP Servers, or edit the settings file directly:
|
|
333
523
|
|
|
334
|
-
|
|
524
|
+
- **Windows:** `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`
|
|
525
|
+
- **Mac:** `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
|
|
526
|
+
- **Linux:** `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
|
|
335
527
|
|
|
336
528
|
```json
|
|
337
529
|
{
|
|
@@ -344,12 +536,20 @@ For Cursor, edit `~/.cursor/mcp.json`. For Windsurf, edit `~/.codeium/windsurf/m
|
|
|
344
536
|
}
|
|
345
537
|
```
|
|
346
538
|
|
|
539
|
+
> Cline spawns the MCP server with the VS Code workspace as CWD, so Engram auto-detects the correct project root in most cases.
|
|
540
|
+
|
|
347
541
|
</details>
|
|
348
542
|
|
|
349
543
|
<details>
|
|
350
|
-
<summary><strong>
|
|
544
|
+
<summary><strong>Roo Code</strong></summary>
|
|
545
|
+
|
|
546
|
+
**Global** — open Roo Code settings → MCP Servers, or edit:
|
|
547
|
+
|
|
548
|
+
- **Windows:** `%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json`
|
|
549
|
+
- **Mac:** `~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json`
|
|
550
|
+
- **Linux:** `~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json`
|
|
351
551
|
|
|
352
|
-
|
|
552
|
+
**Local (project-level)** — `.roo/mcp.json` in your project root:
|
|
353
553
|
|
|
354
554
|
```json
|
|
355
555
|
{
|
|
@@ -362,18 +562,32 @@ Create `.vs/mcp.json` in your solution root:
|
|
|
362
562
|
}
|
|
363
563
|
```
|
|
364
564
|
|
|
565
|
+
> Roo Code is the fork of Cline under a separate VS Code extension (`rooveterinaryinc.roo-cline`). The settings filename is `mcp_settings.json` — different from Cline's `cline_mcp_settings.json`.
|
|
566
|
+
|
|
365
567
|
</details>
|
|
366
568
|
|
|
367
569
|
<details>
|
|
368
|
-
<summary><strong>
|
|
570
|
+
<summary><strong>Gemini CLI</strong></summary>
|
|
369
571
|
|
|
370
|
-
|
|
572
|
+
**Global** — `~/.gemini/settings.json`:
|
|
573
|
+
|
|
574
|
+
```json
|
|
575
|
+
{
|
|
576
|
+
"mcpServers": {
|
|
577
|
+
"engram": {
|
|
578
|
+
"command": "npx",
|
|
579
|
+
"args": ["-y", "engram-mcp-server", "--project-root=/absolute/path/to/your/project"]
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
**Local (project-level)** — `.gemini/settings.json` in your project root:
|
|
371
586
|
|
|
372
587
|
```json
|
|
373
588
|
{
|
|
374
589
|
"mcpServers": {
|
|
375
590
|
"engram": {
|
|
376
|
-
"type": "stdio",
|
|
377
591
|
"command": "npx",
|
|
378
592
|
"args": ["-y", "engram-mcp-server"]
|
|
379
593
|
}
|
|
@@ -381,12 +595,14 @@ For Trae IDE, edit `.trae/mcp.json` in your project root:
|
|
|
381
595
|
}
|
|
382
596
|
```
|
|
383
597
|
|
|
598
|
+
> Gemini CLI reads both `~/.gemini/settings.json` (global) and `.gemini/settings.json` (project-level). The project-level config is only read when Gemini CLI is invoked from within that directory. Gemini CLI expands `$VAR` and `${VAR}` OS environment variables only — not workspace-folder placeholders.
|
|
599
|
+
|
|
384
600
|
</details>
|
|
385
601
|
|
|
386
602
|
<details>
|
|
387
|
-
<summary><strong>
|
|
603
|
+
<summary><strong>Firebase Studio (Project IDX)</strong></summary>
|
|
388
604
|
|
|
389
|
-
|
|
605
|
+
**Local** — `.idx/mcp.json` in your workspace root (Firebase Studio / Project IDX uses project-level config only):
|
|
390
606
|
|
|
391
607
|
```json
|
|
392
608
|
{
|
|
@@ -399,24 +615,51 @@ Edit `~/.config/github-copilot/intellij/mcp.json` or use the built-in Settings
|
|
|
399
615
|
}
|
|
400
616
|
```
|
|
401
617
|
|
|
618
|
+
> Create the file via **Explorer → `.idx` directory → New file → `mcp.json`**, or use the Command Palette: **Firebase Studio: Add MCP Server**. For Gemini CLI inside Firebase Studio, use `.gemini/settings.json` instead (see Gemini CLI above).
|
|
619
|
+
|
|
402
620
|
</details>
|
|
403
621
|
|
|
404
622
|
<details>
|
|
405
|
-
<summary><strong>
|
|
623
|
+
<summary><strong>Trae IDE</strong></summary>
|
|
406
624
|
|
|
407
|
-
|
|
625
|
+
**Local** — `.trae/mcp.json` in your project root:
|
|
408
626
|
|
|
409
627
|
```json
|
|
410
628
|
{
|
|
411
629
|
"mcpServers": {
|
|
412
630
|
"engram": {
|
|
631
|
+
"type": "stdio",
|
|
413
632
|
"command": "npx",
|
|
414
|
-
"args": ["-y", "engram-mcp-server"]
|
|
633
|
+
"args": ["-y", "engram-mcp-server", "--project-root=${workspaceFolder}"]
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
> Trae IDE supports `${workspaceFolder}` in `args` and expands it at spawn time. Trae only supports project-level (local) MCP config — no user-level global config path is documented.
|
|
640
|
+
|
|
641
|
+
</details>
|
|
642
|
+
|
|
643
|
+
<details>
|
|
644
|
+
<summary><strong>JetBrains (GitHub Copilot Plugin)</strong></summary>
|
|
645
|
+
|
|
646
|
+
**Recommended:** configure via **Settings → Tools → AI Assistant → Model Context Protocol (MCP)**.
|
|
647
|
+
|
|
648
|
+
**Manual file** — `~/.config/github-copilot/intellij/mcp.json` (community-sourced path; not officially documented by JetBrains):
|
|
649
|
+
|
|
650
|
+
```json
|
|
651
|
+
{
|
|
652
|
+
"servers": {
|
|
653
|
+
"engram": {
|
|
654
|
+
"command": "npx",
|
|
655
|
+
"args": ["-y", "engram-mcp-server", "--project-root=/absolute/path/to/your/project"]
|
|
415
656
|
}
|
|
416
657
|
}
|
|
417
658
|
}
|
|
418
659
|
```
|
|
419
660
|
|
|
661
|
+
> Note: JetBrains uses `"servers"` (not `"mcpServers"`) as the config key — same as VS Code. The file-based path above is best-effort; use the Settings UI for a guaranteed configuration.
|
|
662
|
+
|
|
420
663
|
</details>
|
|
421
664
|
|
|
422
665
|
### Verifying Your Installation
|
|
@@ -519,7 +762,19 @@ All capabilities route through **4 dispatcher tools** via an `action` parameter.
|
|
|
519
762
|
|
|
520
763
|
---
|
|
521
764
|
|
|
522
|
-
###
|
|
765
|
+
### � Built-in Project Management Framework
|
|
766
|
+
|
|
767
|
+
Engram ships a two-tier project management framework that runs inside the agent — no external PM tool needed.
|
|
768
|
+
|
|
769
|
+
**PM-Lite (always on):** Passive workflow nudges delivered at session start — reminders to record changes, check file notes before opening, log decisions, and end sessions cleanly. Zero configuration. Disable with `engram_admin({ action: "disable_pm_lite" })`.
|
|
770
|
+
|
|
771
|
+
**PM-Full (opt-in):** A full 6-phase execution framework with phase-aware task tagging, automated phase gate checklists, a built-in knowledge base (principles, phase instructions, PERT estimation), and extended discipline nudges for scope control and risk management. Engram offers PM-Full automatically when it detects structured project patterns. Activate manually with `engram_admin({ action: "enable_pm" })`.
|
|
772
|
+
|
|
773
|
+
PM errors are always isolated — they never block core Engram operations.
|
|
774
|
+
|
|
775
|
+
---
|
|
776
|
+
|
|
777
|
+
### �💾 Your Data, Your Machine
|
|
523
778
|
|
|
524
779
|
No cloud. No telemetry. No authentication surface. Memory lives in a local SQLite WAL file at `.engram/memory.db`. `backup` creates a portable copy to any path. `export` serializes everything to JSON. You own it entirely.
|
|
525
780
|
|
|
@@ -670,6 +925,7 @@ Engram v1.7.0 exposes **4 dispatcher tools** (or 1 tool in `--mode=universal`).
|
|
|
670
925
|
| `route_task` | Find the best-matched agent for a task based on specialization scoring. |
|
|
671
926
|
| `broadcast` | Send a message to all agents. |
|
|
672
927
|
| `dump` | Auto-classify unstructured text into decisions, tasks, conventions, findings. |
|
|
928
|
+
| `get_knowledge` | **v1.10** Query the PM knowledge base (PM-Full only). `knowledge_type`: `principles` \| `phase_info` \| `checklist` \| `estimation`. Pass `phase: N` for phase-specific content. |
|
|
673
929
|
|
|
674
930
|
### `engram_admin` — Maintenance & Git Hooks
|
|
675
931
|
|
|
@@ -688,6 +944,41 @@ Engram v1.7.0 exposes **4 dispatcher tools** (or 1 tool in `--mode=universal`).
|
|
|
688
944
|
| `scan_project` | Scan and cache project filesystem structure. |
|
|
689
945
|
| `install_hooks` | Write Engram post-commit git hook to `.git/hooks/`. |
|
|
690
946
|
| `remove_hooks` | Remove Engram hook from `.git/hooks/post-commit`. |
|
|
947
|
+
| `enable_pm` | Activate PM-Full mode (phase gates, checklists, knowledge). |
|
|
948
|
+
| `disable_pm` | Deactivate PM-Full mode. |
|
|
949
|
+
| `disable_pm_lite` | Disable PM-Lite workflow nudges. |
|
|
950
|
+
| `decline_pm` | Permanently dismiss the PM-Full offer for this project. |
|
|
951
|
+
| `reset_pm_offer` | Clear the PM-Full offer/declined flags. |
|
|
952
|
+
| `pm_status` | Get PM health, active mode, advisor stats, and diagnostics. |
|
|
953
|
+
|
|
954
|
+
### Project Management Mode
|
|
955
|
+
|
|
956
|
+
Engram includes a built-in Project Execution Framework with two levels:
|
|
957
|
+
|
|
958
|
+
**PM-Lite (ON by default):** Provides smart workflow nudges — reminders to record changes,
|
|
959
|
+
check file notes, and log decisions. Zero configuration needed. Disable with
|
|
960
|
+
`engram_admin({ action: "disable_pm_lite" })`.
|
|
961
|
+
|
|
962
|
+
**PM-Full (opt-in):** Activates the full 6-phase project management framework with:
|
|
963
|
+
- Phase-aware task tagging (`tags: ["phase:planning"]`)
|
|
964
|
+
- Phase gate checklists (auto-triggered when all tasks for a phase complete)
|
|
965
|
+
- Built-in knowledge base: principles, phase instructions, estimation guidance
|
|
966
|
+
- Extended workflow nudges for phase discipline, scope control, and risk management
|
|
967
|
+
|
|
968
|
+
Activate with `engram_admin({ action: "enable_pm" })`. Engram also offers PM-Full
|
|
969
|
+
automatically when it detects structured project work (3+ tasks, phase tags, or PM keywords).
|
|
970
|
+
|
|
971
|
+
**Knowledge Base (PM-Full only):**
|
|
972
|
+
|
|
973
|
+
| Query | Returns |
|
|
974
|
+
|-------|---------|
|
|
975
|
+
| `engram_memory({ action: "get_knowledge", knowledge_type: "principles" })` | 5 core PM principles |
|
|
976
|
+
| `engram_memory({ action: "get_knowledge", knowledge_type: "phase_info", phase: 3 })` | Phase 3 entry/exit criteria + instruction summaries |
|
|
977
|
+
| `engram_memory({ action: "get_knowledge", knowledge_type: "checklist", phase: 3 })` | Phase Gate 3→4 checklist |
|
|
978
|
+
| `engram_memory({ action: "get_knowledge", knowledge_type: "estimation" })` | PERT formula and estimation guidance |
|
|
979
|
+
|
|
980
|
+
**Diagnostics:** `engram_admin({ action: "pm_status" })` returns PM health, detected phase,
|
|
981
|
+
advisor nudge state, and recent failures. PM errors are always isolated — they never block core Engram operations.
|
|
691
982
|
|
|
692
983
|
### `engram_find` — Discovery & Linting
|
|
693
984
|
|
|
@@ -712,7 +1003,7 @@ engram_session({ action: "start", agent_name: "claude", verbosity: "summary", fo
|
|
|
712
1003
|
```
|
|
713
1004
|
- `project_root` (optional): Pass the absolute path to the workspace when the IDE may not set cwd to the project directory (e.g. Antigravity, Windsurf, Claude Desktop). Engram will re-initialize its database at the correct location. Omit if the IDE already provides `${workspaceFolder}` (VS Code, Cursor).
|
|
714
1005
|
|
|
715
|
-
Act on everything returned: `active_decisions` (binding), `active_conventions` (enforce), `open_tasks`, `agent_rules`, `
|
|
1006
|
+
Act on everything returned: `active_decisions` (binding), `active_conventions` (enforce), `open_tasks`, `agent_rules` (binding), `pm_agent_rules` (binding when PM-Full active), `triggered_events`, `abandoned_work` (resume or discard).
|
|
716
1007
|
Unknown action? → `engram_find({ query: "what I want to do" })`
|
|
717
1008
|
|
|
718
1009
|
### Before Opening Any File
|
|
@@ -878,6 +1169,11 @@ engram_memory({
|
|
|
878
1169
|
{
|
|
879
1170
|
"priority": "MEDIUM",
|
|
880
1171
|
"rule": "Use verbosity:'nano' or 'minimal' for start_session when context is tight; use 'summary' (default) for normal sessions."
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
"priority": "MEDIUM",
|
|
1175
|
+
"rule": "When PM-Full mode is active: tag tasks with phase:N, check phase gate checklists before advancing phases, use get_knowledge for PM guidance.",
|
|
1176
|
+
"condition": "pm_full_enabled"
|
|
881
1177
|
}
|
|
882
1178
|
]
|
|
883
1179
|
```
|
package/dist/constants.d.ts
CHANGED
|
@@ -3,7 +3,15 @@ export declare const SERVER_VERSION: string;
|
|
|
3
3
|
export declare const TOOL_PREFIX = "engram";
|
|
4
4
|
export declare const DB_DIR_NAME = ".engram";
|
|
5
5
|
export declare const DB_FILE_NAME = "memory.db";
|
|
6
|
-
export declare const DB_VERSION =
|
|
6
|
+
export declare const DB_VERSION = 24;
|
|
7
|
+
/** Maps canonical phase name strings (from task tags like `phase:planning`) to phase numbers 1-6. */
|
|
8
|
+
export declare const PHASE_MAP: Record<string, number>;
|
|
9
|
+
/** Keywords in task titles that indicate PM-heavy work and may trigger PM-Full offer. */
|
|
10
|
+
export declare const PM_KEYWORDS: ReadonlyArray<string>;
|
|
11
|
+
/** Maximum number of PM nudges that can be surfaced within a single session. */
|
|
12
|
+
export declare const PM_MAX_NUDGES = 5;
|
|
13
|
+
/** Semantic version of the bundled PM knowledge base (principles, phases, checklists). */
|
|
14
|
+
export declare const KNOWLEDGE_BASE_VERSION = "1.0";
|
|
7
15
|
export declare const MAX_FILE_TREE_DEPTH = 5;
|
|
8
16
|
export declare const MAX_FILE_TREE_ENTRIES = 500;
|
|
9
17
|
export declare const MAX_SEARCH_RESULTS = 50;
|
|
@@ -67,6 +75,7 @@ export declare const CFG_SHARING_MODE = "sharing_mode";
|
|
|
67
75
|
export declare const CFG_SHARING_TYPES = "sharing_types";
|
|
68
76
|
export declare const CFG_SENSITIVE_KEYS = "sensitive_keys";
|
|
69
77
|
export declare const CFG_HTTP_TOKEN = "http_token";
|
|
78
|
+
export declare const CFG_INSTANCE_VISIBLE = "instance_visible";
|
|
70
79
|
export declare const INSTANCE_REGISTRY_DIR = ".engram";
|
|
71
80
|
export declare const INSTANCE_REGISTRY_FILE = "instances.json";
|
|
72
81
|
export declare const HEARTBEAT_INTERVAL_MS = 60000;
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,cAAc,EAAE,MAAqB,CAAC;AACnD,eAAO,MAAM,WAAW,WAAW,CAAC;AAGpC,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,UAAU,KAAK,CAAC;AAG7B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,eAAO,MAAM,aAAa,aAqBxB,CAAC;AAKH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,mBAQzB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UAkBhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,UAG3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAmBzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGxD;AAGD,eAAO,MAAM,gBAAgB,wDAAwD,CAAC;AACtF,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,mBAAmB,kDAAkD,CAAC;AACnF,eAAO,MAAM,uBAAuB,mEAAmE,CAAC;AAGxG,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAGvE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,cAAc,eAAe,CAAC;AAC3C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,cAAc,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -13,7 +13,34 @@ export const TOOL_PREFIX = "engram";
|
|
|
13
13
|
// Database
|
|
14
14
|
export const DB_DIR_NAME = ".engram";
|
|
15
15
|
export const DB_FILE_NAME = "memory.db";
|
|
16
|
-
export const DB_VERSION =
|
|
16
|
+
export const DB_VERSION = 24; // V18 http-token, V19 soft-delete, V20 audit-log, V21 import-jobs, V22 annotations, V23 pm-convention-upgrade, V24 observations
|
|
17
|
+
// PM Framework — Phase / Keyword / Nudge constants
|
|
18
|
+
/** Maps canonical phase name strings (from task tags like `phase:planning`) to phase numbers 1-6. */
|
|
19
|
+
export const PHASE_MAP = {
|
|
20
|
+
initiation: 1,
|
|
21
|
+
planning: 2,
|
|
22
|
+
execution: 3,
|
|
23
|
+
quality: 4,
|
|
24
|
+
finalization: 5,
|
|
25
|
+
handover: 6,
|
|
26
|
+
documentation: 6,
|
|
27
|
+
};
|
|
28
|
+
/** Keywords in task titles that indicate PM-heavy work and may trigger PM-Full offer. */
|
|
29
|
+
export const PM_KEYWORDS = [
|
|
30
|
+
"milestone",
|
|
31
|
+
"phase gate",
|
|
32
|
+
"deliverable",
|
|
33
|
+
"wbs",
|
|
34
|
+
"risk register",
|
|
35
|
+
"sprint",
|
|
36
|
+
"iteration",
|
|
37
|
+
"kickoff",
|
|
38
|
+
"handover",
|
|
39
|
+
];
|
|
40
|
+
/** Maximum number of PM nudges that can be surfaced within a single session. */
|
|
41
|
+
export const PM_MAX_NUDGES = 5;
|
|
42
|
+
/** Semantic version of the bundled PM knowledge base (principles, phases, checklists). */
|
|
43
|
+
export const KNOWLEDGE_BASE_VERSION = "1.0";
|
|
17
44
|
// Limits
|
|
18
45
|
export const MAX_FILE_TREE_DEPTH = 5;
|
|
19
46
|
export const MAX_FILE_TREE_ENTRIES = 500;
|
|
@@ -156,6 +183,7 @@ export const CFG_SHARING_MODE = "sharing_mode"; // "none" | "read" | "full"
|
|
|
156
183
|
export const CFG_SHARING_TYPES = "sharing_types"; // JSON array of table names
|
|
157
184
|
export const CFG_SENSITIVE_KEYS = "sensitive_keys"; // JSON array of decision/convention IDs marked sensitive
|
|
158
185
|
export const CFG_HTTP_TOKEN = "http_token"; // Bearer token for dashboard API (file fallback: .engram/token)
|
|
186
|
+
export const CFG_INSTANCE_VISIBLE = "instance_visible"; // "true" | "false" — controls permanent enrollment in registry
|
|
159
187
|
// Instance registry
|
|
160
188
|
export const INSTANCE_REGISTRY_DIR = ".engram";
|
|
161
189
|
export const INSTANCE_REGISTRY_FILE = "instances.json";
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAW,IAAI,CAAC,OAAO,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEpC,WAAW;AACX,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/database.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Database as DatabaseType } from "better-sqlite3";
|
|
2
2
|
import { type Repositories } from "./repositories/index.js";
|
|
3
|
-
import { CompactionService, ProjectScanService, GitService, EventTriggerService, UpdateService, AgentRulesService, InstanceRegistryService, CrossInstanceService, SensitiveDataService } from "./services/index.js";
|
|
3
|
+
import { CompactionService, ProjectScanService, GitService, EventTriggerService, UpdateService, AgentRulesService, InstanceRegistryService, CrossInstanceService, SensitiveDataService, WorkflowAdvisorService, PMDiagnosticsTracker } from "./services/index.js";
|
|
4
4
|
export interface Services {
|
|
5
5
|
compaction: CompactionService;
|
|
6
6
|
scan: ProjectScanService;
|
|
@@ -11,6 +11,8 @@ export interface Services {
|
|
|
11
11
|
registry: InstanceRegistryService;
|
|
12
12
|
crossInstance: CrossInstanceService;
|
|
13
13
|
sensitiveData: SensitiveDataService;
|
|
14
|
+
advisor: WorkflowAdvisorService;
|
|
15
|
+
diagnostics: PMDiagnosticsTracker;
|
|
14
16
|
}
|
|
15
17
|
export declare function initDatabase(projectRoot: string, ideKey?: string): DatabaseType;
|
|
16
18
|
export declare function getDb(): DatabaseType;
|
package/dist/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAKlQ,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,aAAa,EAAE,oBAAoB,CAAC;IACpC,aAAa,EAAE,oBAAoB,CAAC;IACpC,OAAO,EAAE,sBAAsB,CAAC;IAChC,WAAW,EAAE,oBAAoB,CAAC;CACnC;AA4ED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAgE/E;AAED,wBAAgB,KAAK,IAAI,YAAY,CAGpC;AAED,wBAAgB,QAAQ,IAAI,YAAY,CAGvC;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAGtC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CA4DA;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBxD;AAmCD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAIvF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAK5F;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAI/E;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GAAG,IAAI,CAQvF;AAID,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAGnD;AAED,wBAAgB,uBAAuB,IAAI;IACzC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;CAC1E,GAAG,IAAI,CAWP;AAED,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,SAAS,GAAG,OAAmB,EACxC,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CAcN"}
|