kratos-memory 1.0.0 → 1.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/README.md ADDED
@@ -0,0 +1,170 @@
1
+ <div align="center">
2
+
3
+ ```
4
+ ██╗ ██╗██████╗ █████╗ ████████╗ ██████╗ ███████╗
5
+ ██║ ██╔╝██╔══██╗██╔══██╗╚══██╔══╝██╔═══██╗██╔════╝
6
+ █████╔╝ ██████╔╝███████║ ██║ ██║ ██║███████╗
7
+ ██╔═██╗ ██╔══██╗██╔══██║ ██║ ██║ ██║╚════██║
8
+ ██║ ██╗██║ ██║██║ ██║ ██║ ╚██████╔╝███████║
9
+ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
10
+ ```
11
+
12
+ ### The God of War remembers everything.
13
+
14
+ [![npm version](https://img.shields.io/npm/v/kratos-memory.svg)](https://www.npmjs.com/package/kratos-memory)
15
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
16
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](https://www.typescriptlang.org/)
17
+ [![Formerly Kratos MCP](https://img.shields.io/badge/Formerly-Kratos%20MCP-333.svg)](https://github.com/ceorkm/kratos-mcp)
18
+
19
+ **Persistent memory for AI coding agents. Works with any agent — Claude Code, Codex, Cursor, Cline, or anything that runs Bash.**
20
+
21
+ </div>
22
+
23
+ ---
24
+
25
+ ## What is Kratos?
26
+
27
+ AI coding tools forget everything between sessions. You explain your architecture, your patterns, your decisions — and next session, you explain it all again.
28
+
29
+ Kratos gives your AI agent permanent memory. Every observation is saved, searchable, and encrypted locally. No cloud, no API keys, no vendor lock-in.
30
+
31
+ ```
32
+ > use npx kratos-memory CLI. save what you learn, search when you need context.
33
+
34
+ Agent runs: npx kratos-memory search "auth"
35
+ Agent gets: JWT auth with refresh tokens, 15-min expiry, httpOnly cookies...
36
+ Agent runs: npx kratos-memory save "Added rate limiter to /api routes" --tags middleware
37
+ ```
38
+
39
+ Works with **any** AI coding agent that can execute shell commands.
40
+
41
+ ## Install
42
+
43
+ ```bash
44
+ npx kratos-memory
45
+ ```
46
+
47
+ That's it. No global install needed. Auto-detects your project.
48
+
49
+ ## Commands
50
+
51
+ | Command | What it does |
52
+ |---------|-------------|
53
+ | `npx kratos-memory save <text>` | Save a memory (`--tags`, `--importance 1-5`, `--paths`, `--compress`) |
54
+ | `npx kratos-memory search <query>` | Full-text search with FTS5 (`--limit`, `--tags`, `--debug`) |
55
+ | `npx kratos-memory ask <question>` | Natural language query |
56
+ | `npx kratos-memory recent` | Recent memories (`--limit`) |
57
+ | `npx kratos-memory get <id>` | Full memory details |
58
+ | `npx kratos-memory forget <id>` | Delete a memory |
59
+ | `npx kratos-memory status` | System dashboard |
60
+ | `npx kratos-memory switch <path>` | Switch project |
61
+ | `npx kratos-memory scan <text>` | Detect PII and secrets (`--redact`) |
62
+ | `npx kratos-memory hooks install` | Install auto-capture hooks |
63
+
64
+ ## How agents use it
65
+
66
+ Just tell your agent:
67
+
68
+ > Use `npx kratos-memory` CLI for persistent memory. Run `npx kratos-memory --help` to see commands. Save important observations. Search before starting work.
69
+
70
+ Or drop the included `AGENTS.md` file in your project root — any agent that reads project files will pick it up.
71
+
72
+ ### Claude Code
73
+
74
+ ```
75
+ > use npx kratos-memory CLI (run help first)
76
+ ```
77
+
78
+ ### Codex
79
+
80
+ ```
81
+ > use npx kratos-memory CLI for memory. search for context at the start, save decisions as you go.
82
+ ```
83
+
84
+ ### Cursor / Cline / Any agent
85
+
86
+ Same pattern. If it can run Bash, it can use Kratos.
87
+
88
+ ## Features
89
+
90
+ | Feature | Detail |
91
+ |---------|--------|
92
+ | **FTS5 Search** | Full-text search with porter tokenizer, smart fallbacks, <10ms retrieval |
93
+ | **AES-256-GCM Encryption** | Per-project encryption keys, all data encrypted at rest |
94
+ | **PII Detection** | Auto-detects SSN, credit cards, emails, phones, API keys, AWS keys, JWTs |
95
+ | **Project Isolation** | Each project gets its own SQLite database — zero cross-contamination |
96
+ | **Smart Compression** | Rule-based compression, no AI dependency |
97
+ | **Auto-Capture Hooks** | Optional hooks for Claude Code sessions |
98
+ | **Zero Network Calls** | Nothing leaves your machine. Ever. |
99
+
100
+ ## How it works
101
+
102
+ ```
103
+ You tell your agent "use kratos-memory"
104
+
105
+ Agent runs: npx kratos-memory search "relevant context"
106
+
107
+ Agent gets memories from local SQLite + FTS5
108
+
109
+ Agent works with full context
110
+
111
+ Agent runs: npx kratos-memory save "what it learned"
112
+
113
+ Encrypted, stored locally, searchable forever
114
+ ```
115
+
116
+ ## Data storage
117
+
118
+ ```
119
+ ~/.kratos/
120
+ ├── projects/
121
+ │ ├── proj_abc123/
122
+ │ │ ├── databases/
123
+ │ │ │ └── memories.db # SQLite + FTS5
124
+ │ │ └── project.json # Project metadata
125
+ │ └── proj_def456/
126
+ │ └── ...
127
+ ├── .keys/
128
+ │ └── proj_abc123.key # AES-256 encryption key
129
+ └── projects.json # Project registry
130
+ ```
131
+
132
+ Each project is completely isolated. Different database, different encryption key.
133
+
134
+ ## Security
135
+
136
+ - **AES-256-GCM** encryption at rest with per-project keys
137
+ - **PII detection** — SSN, credit cards, emails, phones, IPs, DOB
138
+ - **Secret scanning** — API keys, AWS keys, GitHub tokens, JWTs, private keys
139
+ - **Key rotation** support
140
+ - **Zero network calls** — nothing ever leaves your machine
141
+ - **No telemetry, no analytics, no cloud**
142
+
143
+ ## Coming from Kratos MCP?
144
+
145
+ This is the successor to [`kratos-mcp`](https://github.com/ceorkm/kratos-mcp). We moved from MCP to CLI because MCP eats too many tokens per tool call (JSON-RPC schema overhead on every interaction). The CLI is lighter, faster, and works with any agent — not just MCP-compatible ones.
146
+
147
+ **Your data is already compatible.** Both versions use the same `~/.kratos/` storage and SQLite format. Just start using `npx kratos-memory` and your existing memories are there.
148
+
149
+ ```bash
150
+ npx kratos-memory status # see your existing memories
151
+ npx kratos-memory recent # they're all here
152
+ ```
153
+
154
+ ## Contributing
155
+
156
+ PRs welcome at [github.com/ceorkm/kratos-cli/pulls](https://github.com/ceorkm/kratos-cli/pulls)
157
+
158
+ ## License
159
+
160
+ MIT
161
+
162
+ ---
163
+
164
+ <div align="center">
165
+
166
+ **Built for developers who are tired of repeating themselves.**
167
+
168
+ [Report Bug](https://github.com/ceorkm/kratos-cli/issues) · [Request Feature](https://github.com/ceorkm/kratos-cli/issues)
169
+
170
+ </div>
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhB"}
@@ -1,7 +1,8 @@
1
1
  import { Output } from '../output.js';
2
2
  import chalk from 'chalk';
3
3
  export async function scanCommand(ctx, text, opts) {
4
- const result = ctx.piiDetector.detect(text);
4
+ const piiDetector = await ctx.getPIIDetector();
5
+ const result = piiDetector.detect(text);
5
6
  Output.header('Security Scan Results');
6
7
  if (!result.hasPII && !result.hasSecrets) {
7
8
  Output.success('No PII or secrets detected');
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAe,EAAE,IAAY,EAAE,IAEhE;IACC,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAe,EAAE,IAAY,EAAE,IAEhE;IACC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -1,15 +1,13 @@
1
1
  import { MemoryDatabase } from '../memory-server/database.js';
2
2
  import { ProjectManager, type Project } from '../project-manager.js';
3
- import { PIIDetector } from '../security/pii-detector.js';
4
3
  export interface CLIContext {
5
4
  projectManager: ProjectManager;
6
5
  memoryDb: MemoryDatabase;
7
- piiDetector: PIIDetector;
8
6
  project: Project;
7
+ getPIIDetector: () => Promise<import('../security/pii-detector.js').PIIDetector>;
9
8
  }
10
9
  /**
11
- * Initialize CLI context — detects project, opens database, etc.
12
- * Reuses the exact same core modules across the system.
10
+ * Initialize CLI context — fast path: detect project + open DB. That's it.
13
11
  */
14
12
  export declare function initCLIContext(): Promise<CLIContext>;
15
13
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/cli/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAY1D"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/cli/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IAEjB,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,6BAA6B,EAAE,WAAW,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAiB1D"}
package/dist/cli/core.js CHANGED
@@ -1,18 +1,22 @@
1
1
  import { MemoryDatabase } from '../memory-server/database.js';
2
2
  import { ProjectManager } from '../project-manager.js';
3
- import { PIIDetector } from '../security/pii-detector.js';
4
3
  /**
5
- * Initialize CLI context — detects project, opens database, etc.
6
- * Reuses the exact same core modules across the system.
4
+ * Initialize CLI context — fast path: detect project + open DB. That's it.
7
5
  */
8
6
  export async function initCLIContext() {
9
7
  const projectManager = new ProjectManager();
10
- const piiDetector = new PIIDetector();
11
- // Auto-detect project from cwd
12
8
  const workingDir = process.env.KRATOS_PROJECT_ROOT || process.cwd();
13
9
  const project = await projectManager.detectProject(workingDir);
14
- // Initialize memory database (isolated per-project)
15
10
  const memoryDb = new MemoryDatabase(project.root, project.id);
16
- return { projectManager, memoryDb, piiDetector, project };
11
+ // Lazy PII detector only loaded when save/scan commands need it
12
+ let _piiDetector = null;
13
+ const getPIIDetector = async () => {
14
+ if (!_piiDetector) {
15
+ const { PIIDetector } = await import('../security/pii-detector.js');
16
+ _piiDetector = new PIIDetector();
17
+ }
18
+ return _piiDetector;
19
+ };
20
+ return { projectManager, memoryDb, project, getPIIDetector };
17
21
  }
18
22
  //# sourceMappingURL=core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/cli/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAS1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,+BAA+B;IAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAE/D,oDAAoD;IACpD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/cli/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAUrE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9D,kEAAkE;IAClE,IAAI,YAAY,GAA6D,IAAI,CAAC;IAClF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;YACpE,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC/D,CAAC"}
@@ -32,7 +32,6 @@ export declare class MemoryDatabase {
32
32
  private projectRoot;
33
33
  constructor(projectRoot: string, projectId: string);
34
34
  private initializeSchema;
35
- private setupTriggers;
36
35
  save(params: {
37
36
  summary: string;
38
37
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/memory-server/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/memory-server/database.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import Database from 'better-sqlite3';
2
2
  import path from 'path';
3
- import fs from 'fs-extra';
3
+ import fs from 'node:fs';
4
4
  import crypto from 'crypto';
5
- import { Logger } from '../utils/logger.js';
6
- const logger = new Logger('MemoryDB');
7
5
  export class MemoryDatabase {
8
6
  db;
9
7
  projectId;
@@ -11,18 +9,22 @@ export class MemoryDatabase {
11
9
  constructor(projectRoot, projectId) {
12
10
  this.projectRoot = projectRoot;
13
11
  this.projectId = projectId;
14
- // CRITICAL: Each project gets COMPLETELY ISOLATED database
15
- // Path: ~/.kratos/projects/{project_id}/databases/memories.db
16
- // This ensures NO cross-contamination between projects
17
12
  const kratosHome = path.join(process.env.HOME || process.env.USERPROFILE || '', '.kratos');
18
- const dbPath = path.join(kratosHome, 'projects', projectId, 'databases', 'memories.db');
19
- fs.ensureDirSync(path.dirname(dbPath));
13
+ const dbDir = path.join(kratosHome, 'projects', projectId, 'databases');
14
+ const dbPath = path.join(dbDir, 'memories.db');
15
+ // Only mkdir if needed
16
+ if (!fs.existsSync(dbDir)) {
17
+ fs.mkdirSync(dbDir, { recursive: true });
18
+ }
19
+ const isNew = !fs.existsSync(dbPath);
20
20
  this.db = new Database(dbPath);
21
21
  this.db.pragma('journal_mode = WAL');
22
- this.db.pragma('foreign_keys = ON');
23
- this.initializeSchema();
24
- this.setupTriggers();
25
- logger.info(`Memory database ISOLATED for project: ${projectId} at ${dbPath}`);
22
+ // Only run schema creation for new databases
23
+ if (isNew) {
24
+ this.db.pragma('foreign_keys = ON');
25
+ this.initializeSchema();
26
+ }
27
+ // No setInterval — CLI commands are one-shot
26
28
  }
27
29
  initializeSchema() {
28
30
  // Main memories table
@@ -83,12 +85,7 @@ export class MemoryDatabase {
83
85
  END;
84
86
  `);
85
87
  }
86
- setupTriggers() {
87
- // Auto-cleanup expired memories
88
- setInterval(() => {
89
- this.cleanupExpired();
90
- }, 60 * 60 * 1000); // Every hour
91
- }
88
+ // No background timers — CLI is one-shot. Cleanup runs on save.
92
89
  save(params) {
93
90
  // Project isolation is enforced by the database path itself
94
91
  // Each project has its own database file, so no cross-contamination is possible
@@ -99,7 +96,7 @@ export class MemoryDatabase {
99
96
  // Check for duplicates
100
97
  const existing = this.db.prepare('SELECT id FROM memories WHERE dedupe_hash = ? AND project_id = ?').get(dedupeHash, this.projectId);
101
98
  if (existing && typeof existing === 'object' && 'id' in existing) {
102
- logger.info(`Duplicate memory detected, updating existing: ${existing.id}`);
99
+ // Duplicate update existing
103
100
  return this.update(existing.id, params);
104
101
  }
105
102
  // Calculate expiration
@@ -111,7 +108,8 @@ export class MemoryDatabase {
111
108
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
112
109
  `);
113
110
  stmt.run(id, this.projectId, params.summary, params.text, JSON.stringify(params.tags || []), JSON.stringify(params.paths || []), params.importance || 3, now, now, params.ttl || null, expires_at, dedupeHash);
114
- logger.info(`Memory saved: ${id} - ${params.summary}`);
111
+ // Cleanup expired on save (instead of background timer)
112
+ this.cleanupExpired();
115
113
  // Return the complete memory object
116
114
  const memory = {
117
115
  id,
@@ -424,16 +422,16 @@ export class MemoryDatabase {
424
422
  }
425
423
  catch (ftsError) {
426
424
  // FTS table might not exist, that's okay
427
- logger.debug('FTS deletion skipped:', ftsError);
425
+ // FTS deletion skipped
428
426
  }
429
- logger.info(`Memory deleted: ${id}`);
427
+ // deleted
430
428
  return {
431
429
  ok: result.changes > 0,
432
430
  message: result.changes > 0 ? 'Memory deleted successfully' : 'Memory not found'
433
431
  };
434
432
  }
435
433
  catch (error) {
436
- logger.error(`Failed to delete memory ${id}:`, error);
434
+ // Failed to delete
437
435
  return {
438
436
  ok: false,
439
437
  message: `Error: ${error.message}`
@@ -478,7 +476,7 @@ export class MemoryDatabase {
478
476
  const stmt = this.db.prepare('DELETE FROM memories WHERE expires_at < ?');
479
477
  const result = stmt.run(now);
480
478
  if (result.changes > 0) {
481
- logger.info(`Cleaned up ${result.changes} expired memories`);
479
+ // Cleaned up expired memories
482
480
  }
483
481
  }
484
482
  searchPreview(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/memory-server/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/memory-server/database.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,7 @@ export interface Project {
7
7
  }
8
8
  /**
9
9
  * Smart Project Manager - Handles project isolation and auto-detection
10
- *
11
- * KEY FEATURES:
12
- * - Each project gets COMPLETELY ISOLATED database
13
- * - Auto-detects project from working directory
14
- * - No memory pollution between projects
15
- * - Clean project switching
10
+ * Optimized for CLI: no eager loading, minimal I/O
16
11
  */
17
12
  export declare class ProjectManager {
18
13
  private kratosHome;
@@ -39,7 +34,7 @@ export declare class ProjectManager {
39
34
  */
40
35
  getDatabasePath(dbName: string): string;
41
36
  /**
42
- * List all known projects
37
+ * List all known projects (loads cache on first call)
43
38
  */
44
39
  listProjects(): Project[];
45
40
  /**
@@ -58,9 +53,14 @@ export declare class ProjectManager {
58
53
  */
59
54
  private generateProjectId;
60
55
  /**
61
- * Load projects cache from disk
56
+ * Get projects cache lazy loaded on first access
62
57
  */
63
- private loadProjectsCache;
58
+ private getProjectsCache;
59
+ /**
60
+ * Ensure a single project is registered in the global cache file
61
+ * (append without loading all projects into memory)
62
+ */
63
+ private ensureProjectInCache;
64
64
  /**
65
65
  * Save projects cache to disk
66
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"project-manager.d.ts","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAmC;;IASxD;;;OAGG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuE1D;;OAEG;IACG,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB9D;;;OAGG;IACH,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAQzC;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKvC;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;IAKzB;;OAEG;IACH,iBAAiB,IAAI,OAAO,GAAG,IAAI;IAInC;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;QAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAcvD"}
1
+ {"version":3,"file":"project-manager.d.ts","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAqC;;IAW1D;;;OAGG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+D1D;;OAEG;IACG,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB9D;;;OAGG;IACH,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAQzC;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKvC;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;IAKzB;;OAEG;IACH,iBAAiB,IAAI,OAAO,GAAG,IAAI;IAInC;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;QAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvD"}
@@ -1,26 +1,21 @@
1
- import { Logger } from './utils/logger.js';
2
1
  import path from 'path';
3
- import fs from 'fs-extra';
2
+ import fs from 'node:fs';
4
3
  import crypto from 'crypto';
5
- const logger = new Logger('ProjectManager');
6
4
  /**
7
5
  * Smart Project Manager - Handles project isolation and auto-detection
8
- *
9
- * KEY FEATURES:
10
- * - Each project gets COMPLETELY ISOLATED database
11
- * - Auto-detects project from working directory
12
- * - No memory pollution between projects
13
- * - Clean project switching
6
+ * Optimized for CLI: no eager loading, minimal I/O
14
7
  */
15
8
  export class ProjectManager {
16
9
  kratosHome;
17
10
  currentProject = null;
18
- projectsCache = new Map();
11
+ projectsCache = null; // Lazy — only loaded when needed
19
12
  constructor() {
20
- // All Kratos data lives in user home, organized by project
21
13
  this.kratosHome = path.join(process.env.HOME || process.env.USERPROFILE || '', '.kratos');
22
- fs.ensureDirSync(this.kratosHome);
23
- this.loadProjectsCache();
14
+ // Only mkdir if it doesn't exist (avoid sync I/O when possible)
15
+ if (!fs.existsSync(this.kratosHome)) {
16
+ fs.mkdirSync(this.kratosHome, { recursive: true });
17
+ }
18
+ // DON'T load projects cache here — load lazily when needed
24
19
  }
25
20
  /**
26
21
  * Auto-detect project from current working directory
@@ -28,22 +23,14 @@ export class ProjectManager {
28
23
  */
29
24
  async detectProject(workingDir) {
30
25
  const dir = workingDir || process.cwd();
31
- // Look for project markers in order of preference
32
- const markers = [
33
- '.git', // Git repo
34
- 'package.json', // Node project
35
- 'Cargo.toml', // Rust project
36
- 'go.mod', // Go project
37
- 'pyproject.toml', // Python project
38
- '.kratos', // Existing Kratos project
39
- ];
26
+ // Look for project markers use sync fs.existsSync (faster than async for local files)
27
+ const markers = ['.git', 'package.json', 'Cargo.toml', 'go.mod', 'pyproject.toml', '.kratos'];
40
28
  let projectRoot = dir;
41
29
  let found = false;
42
- // Walk up directory tree to find project root
43
30
  let currentDir = dir;
44
31
  while (currentDir !== path.dirname(currentDir)) {
45
32
  for (const marker of markers) {
46
- if (await fs.pathExists(path.join(currentDir, marker))) {
33
+ if (fs.existsSync(path.join(currentDir, marker))) {
47
34
  projectRoot = currentDir;
48
35
  found = true;
49
36
  break;
@@ -53,13 +40,23 @@ export class ProjectManager {
53
40
  break;
54
41
  currentDir = path.dirname(currentDir);
55
42
  }
56
- // Generate stable project ID from path
57
43
  const projectId = this.generateProjectId(projectRoot);
58
44
  const projectName = path.basename(projectRoot);
59
- // Check if we already know this project
60
- let project = this.projectsCache.get(projectId);
61
- if (!project) {
62
- // New project - create it
45
+ // Check project dir directly on disk — skip loading entire cache
46
+ const projectDir = this.getProjectDir(projectId);
47
+ const projectJsonPath = path.join(projectDir, 'project.json');
48
+ let project;
49
+ if (fs.existsSync(projectJsonPath)) {
50
+ // Known project — read just this one project's metadata
51
+ const raw = JSON.parse(fs.readFileSync(projectJsonPath, 'utf-8'));
52
+ project = {
53
+ ...raw,
54
+ createdAt: new Date(raw.createdAt),
55
+ lastAccessed: new Date()
56
+ };
57
+ }
58
+ else {
59
+ // New project
63
60
  project = {
64
61
  id: projectId,
65
62
  name: projectName,
@@ -68,30 +65,25 @@ export class ProjectManager {
68
65
  lastAccessed: new Date()
69
66
  };
70
67
  // Create isolated project directory
71
- const projectDir = this.getProjectDir(projectId);
72
- await fs.ensureDir(projectDir);
68
+ fs.mkdirSync(projectDir, { recursive: true });
73
69
  // Save project metadata
74
- await fs.writeJson(path.join(projectDir, 'project.json'), project, { spaces: 2 });
75
- this.projectsCache.set(projectId, project);
76
- logger.info(`Created new project: ${projectName} (${projectId})`);
77
- }
78
- else {
79
- // Update last accessed
80
- project.lastAccessed = new Date();
70
+ fs.writeFileSync(projectJsonPath, JSON.stringify(project, null, 2));
71
+ // Update the global projects cache file (append this project)
72
+ this.ensureProjectInCache(project);
81
73
  }
82
74
  this.currentProject = project;
83
- this.saveProjectsCache();
84
75
  return project;
85
76
  }
86
77
  /**
87
78
  * Switch to a different project
88
79
  */
89
80
  async switchProject(projectIdOrPath) {
90
- // Check if it's a project ID
91
- let project = this.projectsCache.get(projectIdOrPath);
81
+ // Check if it's a project ID — look in cache
82
+ const cache = this.getProjectsCache();
83
+ let project = cache.get(projectIdOrPath);
92
84
  if (!project) {
93
- // Maybe it's a path - detect project from it
94
- if (await fs.pathExists(projectIdOrPath)) {
85
+ // Maybe it's a path
86
+ if (fs.existsSync(projectIdOrPath)) {
95
87
  project = await this.detectProject(projectIdOrPath);
96
88
  }
97
89
  else {
@@ -101,7 +93,6 @@ export class ProjectManager {
101
93
  this.currentProject = project;
102
94
  project.lastAccessed = new Date();
103
95
  this.saveProjectsCache();
104
- logger.info(`Switched to project: ${project.name}`);
105
96
  return project;
106
97
  }
107
98
  /**
@@ -124,10 +115,10 @@ export class ProjectManager {
124
115
  return path.join(projectDir, 'databases', `${dbName}.db`);
125
116
  }
126
117
  /**
127
- * List all known projects
118
+ * List all known projects (loads cache on first call)
128
119
  */
129
120
  listProjects() {
130
- return Array.from(this.projectsCache.values())
121
+ return Array.from(this.getProjectsCache().values())
131
122
  .sort((a, b) => b.lastAccessed.getTime() - a.lastAccessed.getTime());
132
123
  }
133
124
  /**
@@ -143,16 +134,14 @@ export class ProjectManager {
143
134
  const projectDir = this.getProjectDir(projectId);
144
135
  if (!options.keepMemories) {
145
136
  const memoriesDb = path.join(projectDir, 'databases', 'memories.db');
146
- if (await fs.pathExists(memoriesDb)) {
147
- await fs.remove(memoriesDb);
148
- logger.info(`Cleaned up memories for project ${projectId}`);
137
+ if (fs.existsSync(memoriesDb)) {
138
+ fs.unlinkSync(memoriesDb);
149
139
  }
150
140
  }
151
141
  if (!options.keepConcepts) {
152
142
  const conceptsDb = path.join(projectDir, 'databases', 'concepts.db');
153
- if (await fs.pathExists(conceptsDb)) {
154
- await fs.remove(conceptsDb);
155
- logger.info(`Cleaned up concepts for project ${projectId}`);
143
+ if (fs.existsSync(conceptsDb)) {
144
+ fs.unlinkSync(conceptsDb);
156
145
  }
157
146
  }
158
147
  }
@@ -166,13 +155,16 @@ export class ProjectManager {
166
155
  return `proj_${hash.substring(0, 12)}`;
167
156
  }
168
157
  /**
169
- * Load projects cache from disk
158
+ * Get projects cache lazy loaded on first access
170
159
  */
171
- loadProjectsCache() {
160
+ getProjectsCache() {
161
+ if (this.projectsCache)
162
+ return this.projectsCache;
163
+ this.projectsCache = new Map();
172
164
  const cacheFile = path.join(this.kratosHome, 'projects.json');
173
165
  if (fs.existsSync(cacheFile)) {
174
166
  try {
175
- const cache = fs.readJsonSync(cacheFile);
167
+ const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf-8'));
176
168
  for (const project of cache.projects || []) {
177
169
  this.projectsCache.set(project.id, {
178
170
  ...project,
@@ -180,12 +172,34 @@ export class ProjectManager {
180
172
  lastAccessed: new Date(project.lastAccessed)
181
173
  });
182
174
  }
183
- logger.info(`Loaded ${this.projectsCache.size} projects from cache`);
184
175
  }
185
- catch (error) {
186
- logger.error('Failed to load projects cache:', error);
176
+ catch {
177
+ // Corrupted cache start fresh
187
178
  }
188
179
  }
180
+ return this.projectsCache;
181
+ }
182
+ /**
183
+ * Ensure a single project is registered in the global cache file
184
+ * (append without loading all projects into memory)
185
+ */
186
+ ensureProjectInCache(project) {
187
+ const cacheFile = path.join(this.kratosHome, 'projects.json');
188
+ let cache = { projects: [], lastUpdated: new Date() };
189
+ if (fs.existsSync(cacheFile)) {
190
+ try {
191
+ cache = JSON.parse(fs.readFileSync(cacheFile, 'utf-8'));
192
+ }
193
+ catch {
194
+ // Corrupted — start fresh
195
+ }
196
+ }
197
+ // Only add if not already there
198
+ if (!cache.projects.some((p) => p.id === project.id)) {
199
+ cache.projects.push(project);
200
+ cache.lastUpdated = new Date();
201
+ fs.writeFileSync(cacheFile, JSON.stringify(cache, null, 2));
202
+ }
189
203
  }
190
204
  /**
191
205
  * Save projects cache to disk
@@ -193,14 +207,14 @@ export class ProjectManager {
193
207
  saveProjectsCache() {
194
208
  const cacheFile = path.join(this.kratosHome, 'projects.json');
195
209
  const cache = {
196
- projects: Array.from(this.projectsCache.values()),
210
+ projects: Array.from(this.getProjectsCache().values()),
197
211
  lastUpdated: new Date()
198
212
  };
199
213
  try {
200
- fs.writeJsonSync(cacheFile, cache, { spaces: 2 });
214
+ fs.writeFileSync(cacheFile, JSON.stringify(cache, null, 2));
201
215
  }
202
- catch (error) {
203
- logger.error('Failed to save projects cache:', error);
216
+ catch {
217
+ // Silently fail non-critical
204
218
  }
205
219
  }
206
220
  /**
@@ -214,13 +228,9 @@ export class ProjectManager {
214
228
  */
215
229
  async updateKratosHome(newPath) {
216
230
  this.kratosHome = newPath;
217
- // Ensure the new directory exists
218
- await fs.ensureDir(this.kratosHome);
219
- // Clear cache as project paths may have changed
220
- this.projectsCache.clear();
221
- // Reload cache from new location
222
- this.loadProjectsCache();
223
- logger.info(`Updated Kratos home to: ${this.kratosHome}`);
231
+ fs.mkdirSync(this.kratosHome, { recursive: true });
232
+ // Reset cache so it reloads from new location
233
+ this.projectsCache = null;
224
234
  }
225
235
  }
226
236
  //# sourceMappingURL=project-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kratos-memory",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Persistent memory for AI coding agents — CLI-first, encrypted, local",
5
5
  "main": "dist/cli/index.js",
6
6
  "type": "module",
@@ -18,25 +18,29 @@
18
18
  "start": "node dist/cli/index.js",
19
19
  "prepublishOnly": "npm run build"
20
20
  },
21
- "keywords": ["cli", "ai-memory", "ai-agents", "claude-code", "codex", "cursor", "sqlite", "fts5", "memory", "persistent"],
21
+ "keywords": [
22
+ "cli",
23
+ "ai-memory",
24
+ "ai-agents",
25
+ "claude-code",
26
+ "codex",
27
+ "cursor",
28
+ "sqlite",
29
+ "fts5",
30
+ "memory",
31
+ "persistent"
32
+ ],
22
33
  "author": "",
23
34
  "license": "MIT",
24
35
  "dependencies": {
25
36
  "better-sqlite3": "^9.2.2",
26
37
  "chalk": "^5.3.0",
27
38
  "commander": "^12.1.0",
28
- "crypto-js": "^4.2.0",
29
- "fs-extra": "^11.2.0",
30
- "js-yaml": "^4.1.0",
31
- "node-forge": "^1.3.1",
32
- "sodium-native": "^5.0.6",
33
- "winston": "^3.11.0",
34
- "zod": "^3.22.4"
39
+ "fs-extra": "^11.2.0"
35
40
  },
36
41
  "devDependencies": {
37
42
  "@types/better-sqlite3": "^7.6.8",
38
43
  "@types/fs-extra": "^11.0.4",
39
- "@types/js-yaml": "^4.0.9",
40
44
  "@types/node": "^20.0.0",
41
45
  "tsx": "^4.0.0",
42
46
  "typescript": "^5.0.0"