kimi-code-memory-mcp-server 0.1.1 → 0.1.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 (120) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/README.en.md +342 -0
  3. package/README.md +214 -137
  4. package/assets/contextFlow.svg +144 -0
  5. package/dist/config.d.ts +13 -0
  6. package/dist/config.js +13 -0
  7. package/dist/config.js.map +1 -1
  8. package/dist/context/wire-context.d.ts +3 -0
  9. package/dist/context/wire-context.js +20 -50
  10. package/dist/context/wire-context.js.map +1 -1
  11. package/dist/dao/constants.d.ts +33 -0
  12. package/dist/dao/constants.js +17 -0
  13. package/dist/dao/constants.js.map +1 -0
  14. package/dist/dao/index-catalog.d.ts +19 -0
  15. package/dist/dao/index-catalog.js +94 -0
  16. package/dist/dao/index-catalog.js.map +1 -0
  17. package/dist/dao/index-reconciler.d.ts +13 -0
  18. package/dist/dao/index-reconciler.js +162 -0
  19. package/dist/dao/index-reconciler.js.map +1 -0
  20. package/dist/dao/index-store.d.ts +31 -0
  21. package/dist/dao/index-store.js +128 -0
  22. package/dist/dao/index-store.js.map +1 -0
  23. package/dist/dao/index.d.ts +12 -31
  24. package/dist/dao/index.js +50 -404
  25. package/dist/dao/index.js.map +1 -1
  26. package/dist/dao/memory-store.js +2 -10
  27. package/dist/dao/memory-store.js.map +1 -1
  28. package/dist/dao/memory-tree-renderer.d.ts +22 -0
  29. package/dist/dao/memory-tree-renderer.js +75 -0
  30. package/dist/dao/memory-tree-renderer.js.map +1 -0
  31. package/dist/prompts/index.d.ts +26 -0
  32. package/dist/prompts/index.js +103 -0
  33. package/dist/prompts/index.js.map +1 -0
  34. package/dist/refine/adapter.d.ts +6 -0
  35. package/dist/refine/adapter.js +28 -0
  36. package/dist/refine/adapter.js.map +1 -0
  37. package/dist/refine/constants.d.ts +35 -0
  38. package/dist/refine/constants.js +107 -0
  39. package/dist/refine/constants.js.map +1 -0
  40. package/dist/refine/extractor.d.ts +12 -0
  41. package/dist/refine/extractor.js +122 -0
  42. package/dist/refine/extractor.js.map +1 -0
  43. package/dist/refine/store.d.ts +19 -0
  44. package/dist/refine/store.js +139 -0
  45. package/dist/refine/store.js.map +1 -0
  46. package/dist/refine/types.d.ts +56 -0
  47. package/dist/refine/types.js +5 -0
  48. package/dist/refine/types.js.map +1 -0
  49. package/dist/refined-manager.d.ts +10 -56
  50. package/dist/refined-manager.js +22 -341
  51. package/dist/refined-manager.js.map +1 -1
  52. package/dist/resources/index.d.ts +15 -0
  53. package/dist/resources/index.js +134 -0
  54. package/dist/resources/index.js.map +1 -0
  55. package/dist/server.js +46 -2
  56. package/dist/server.js.map +1 -1
  57. package/dist/tools/context-tools.d.ts +16 -51
  58. package/dist/tools/context-tools.js +247 -55
  59. package/dist/tools/context-tools.js.map +1 -1
  60. package/dist/tools/index.d.ts +5 -827
  61. package/dist/tools/index.js +23 -354
  62. package/dist/tools/index.js.map +1 -1
  63. package/dist/tools/memory-tools.d.ts +4 -60
  64. package/dist/tools/memory-tools.js +129 -79
  65. package/dist/tools/memory-tools.js.map +1 -1
  66. package/dist/tools/system-tools.d.ts +3 -34
  67. package/dist/tools/system-tools.js +86 -32
  68. package/dist/tools/system-tools.js.map +1 -1
  69. package/dist/tools/theme-tools.d.ts +3 -31
  70. package/dist/tools/theme-tools.js +78 -22
  71. package/dist/tools/theme-tools.js.map +1 -1
  72. package/dist/tools/types.d.ts +21 -0
  73. package/dist/tools/types.js +13 -0
  74. package/dist/tools/types.js.map +1 -0
  75. package/dist/types.d.ts +4 -2
  76. package/dist/utils/action-entities.d.ts +16 -0
  77. package/dist/utils/action-entities.js +35 -0
  78. package/dist/utils/action-entities.js.map +1 -0
  79. package/dist/utils/date.d.ts +11 -0
  80. package/dist/utils/date.js +13 -0
  81. package/dist/utils/date.js.map +1 -0
  82. package/dist/utils/file-helpers.d.ts +10 -0
  83. package/dist/utils/file-helpers.js +28 -0
  84. package/dist/utils/file-helpers.js.map +1 -0
  85. package/dist/utils/headings.d.ts +5 -0
  86. package/dist/utils/headings.js +21 -0
  87. package/dist/utils/headings.js.map +1 -0
  88. package/dist/utils/search.d.ts +17 -0
  89. package/dist/utils/search.js +60 -0
  90. package/dist/utils/search.js.map +1 -0
  91. package/dist/utils/tools.d.ts +5 -0
  92. package/dist/utils/tools.js +10 -0
  93. package/dist/utils/tools.js.map +1 -0
  94. package/dist/vis/api.d.ts +82 -0
  95. package/dist/vis/api.js +212 -0
  96. package/dist/vis/api.js.map +1 -0
  97. package/dist/vis/auto-start.d.ts +12 -0
  98. package/dist/vis/auto-start.js +87 -0
  99. package/dist/vis/auto-start.js.map +1 -0
  100. package/dist/vis/server.d.ts +14 -0
  101. package/dist/vis/server.js +103 -0
  102. package/dist/vis/server.js.map +1 -0
  103. package/dist/vis/static/app.js +395 -0
  104. package/dist/vis/static/index.html +95 -0
  105. package/dist/vis/static/style.css +707 -0
  106. package/dist/vis-cli.d.ts +7 -0
  107. package/dist/vis-cli.js +140 -0
  108. package/dist/vis-cli.js.map +1 -0
  109. package/docs/0.agent-memory-market-research.md +354 -0
  110. package/docs/1.memory-system-proposal-for-kimi-code.md +688 -0
  111. package/docs/2.memory-architecture-overview.md +417 -0
  112. package/docs/3.memory-skill-prompt-design.md +430 -0
  113. package/docs/4.kimi-code-native-evolution-roadmap.md +559 -0
  114. package/docs/5.decision-guard-design-notes.md +500 -0
  115. package/docs/ARCHITECTURE.md +2 -2
  116. package/docs/design-story.md +350 -0
  117. package/docs/three-layer-memory-model.md +153 -0
  118. package/docs/three-layer-memory-model.zh-CN.md +153 -0
  119. package/package.json +12 -6
  120. package/README.zh-CN.md +0 -292
package/CHANGELOG.md CHANGED
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.2] - 2026-06-25
9
+
10
+ ### Added
11
+ - MCP Prompts support: `memory-decision-check`, `memory-theme-trace`, `memory-session-summary`.
12
+ - MCP Resources support: `memory://<folder>/<key>`, `theme://<theme>`, `essence://essence`.
13
+ - LobeHub badge and green npm version badge in README.
14
+ - README sections documenting prompts and resources.
15
+
16
+ ### Changed
17
+ - Code refactor: split tools/refine/DAO layers, shared utils, and unit tests.
18
+ - `search_context` output-size controls (`compact`/`normal`/`full`, `max_output_chars`).
19
+
8
20
  ## [0.1.0] - 2026-06-24
9
21
 
10
22
  ### Added
@@ -36,6 +48,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
36
48
  - Improved `scripts/session-search-verify.mjs` with CLI/env args, safer parsing, and cleanup.
37
49
  - Updated READMEs to reflect npm-published status and setup command.
38
50
 
39
- [Unreleased]: https://github.com/Zehee/kimi-code-memory-mcp-server/compare/v0.1.1...HEAD
51
+ [Unreleased]: https://github.com/Zehee/kimi-code-memory-mcp-server/compare/v0.1.2...HEAD
52
+ [0.1.2]: https://github.com/Zehee/kimi-code-memory-mcp-server/releases/tag/v0.1.2
40
53
  [0.1.1]: https://github.com/Zehee/kimi-code-memory-mcp-server/releases/tag/v0.1.1
41
54
  [0.1.0]: https://github.com/Zehee/kimi-code-memory-mcp-server/releases/tag/v0.1.0
package/README.en.md ADDED
@@ -0,0 +1,342 @@
1
+ # Kimi Code Memory MCP Server
2
+
3
+ [中文](./README.md)
4
+
5
+ [![CI](https://github.com/Zehee/kimi-code-memory-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/Zehee/kimi-code-memory-mcp-server/actions/workflows/ci.yml)
6
+ [![npm version](https://img.shields.io/npm/v/kimi-code-memory-mcp-server.svg?color=brightgreen)](https://www.npmjs.com/package/kimi-code-memory-mcp-server)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
8
+
9
+ A local stdio MCP server that gives [Kimi Code CLI](https://github.com/MoonshotAI/kimi-code) cross-session memory.
10
+
11
+ > **Note:** This package is published to npm as `kimi-code-memory-mcp-server`. You can install it directly or run it from source.
12
+
13
+ ## Features
14
+
15
+ - **Markdown-first memories** — human-readable, git-friendly, LLM-compatible.
16
+ - **Structured long-term memory** — `memory/decisions/`, `memory/knowledge/`, `memory/rules/`, `memory/reference/`.
17
+ - **Workspace essence** — condensed digest (≤15 KB) generated from `memory/`.
18
+ - **Cross-session context recovery** — parses Kimi Code CLI's `wire.jsonl` directly.
19
+ - **Theme tracing** — associate conversation turns and memories with themes, then trace their evolution.
20
+ - **Refined turn summaries** — reusable turn-level atomic summaries shared across themes.
21
+ - **Rebuilding index** — `index.json` is a cache; `.md` files are the source of truth.
22
+
23
+ ## Theme Tracing
24
+
25
+ Traditional context management only focuses on the **vertical** dimension: the closer in time, the clearer; the further away, the more it decays. But this misses a core feature of real work:
26
+
27
+ > **Multiple sessions in the same workspace are often not a single narrative, but several intertwined theme lines running in parallel.**
28
+
29
+ For example:
30
+
31
+ - Session A: developing auth authentication
32
+ - Session B: discussing orders table migration
33
+ - Session C: encryption RSA + decryption BCrypt + CAPTCHA + Cookie
34
+ - Session D: fix SQL error bug
35
+ - Session E: login Login API design
36
+
37
+ If you only look vertically, these sessions appear independent. But if you scan horizontally, you'll find that A, C, and E all belong to the "registration/login" theme.
38
+
39
+ **Theme tracing** is: treat each turn on the timeline as a cylinder, where the height represents the turn's computation/thinking depth, and the color/tag represents the theme. We can even mine from Kimi Code's already compressed and archived context, perform deep horizontal scanning, find cylinders (turns) of the same color, re-establish their associations, form a theme, and store it in memory. Three weeks later, when you're about to upgrade your "registration/login" module or fix a bug, you don't have to re-explain the original design rationale to an agent whose context has been compressed countless times. Instead, your agent can say: "I just traced the 'registration/login' theme. Based on the design decision from three weeks ago and the two adjustments made since then, we should use solution B for the current problem."
40
+
41
+ > The diagram below shows how `kimi-memory` views conversation history: vertical bars are turns on the timeline, thick horizontal lines are clusters, gray boxes are sessions, and colored brackets connect related turns/clusters across sessions into theme lines.
42
+
43
+ ![Turns, clusters, sessions, and theme tracing over time](./assets/contextFlow.svg)
44
+
45
+ The animated clip below is a real Kimi Code CLI session using `kimi-memory`. The user asks for two cross-session summaries — first the evolution history of the MCP memory server itself, then the evolution history of the E2E testing tools. The agent retrieves related memories and conversation turns, then synthesizes structured answers.
46
+
47
+ ![Kimi Memory MCP Server demo](https://github.com/user-attachments/assets/a8947676-1487-47ed-8e0c-8d15f8662618)
48
+
49
+ Tools: `tag_theme`, `trace_theme`, `list_themes`, `search_context`, `refine_session_turns`, `load_turn_context`.
50
+
51
+ ## Why Markdown?
52
+
53
+ Most agent memory systems default to vector databases. That works for fuzzy retrieval, but it also makes memories opaque, hard to audit, and hard to version-control.
54
+
55
+ This project starts from the opposite assumption:
56
+
57
+ > Memories should be **judged, structured, and owned by the user** before they are stored.
58
+
59
+ Markdown + YAML frontmatter gives you:
60
+
61
+ - Full readability and editability
62
+ - Native git diff support
63
+ - No required external database or cloud service
64
+ - Compatibility with any LLM that can read text
65
+
66
+ See [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) for the design rationale.
67
+
68
+ ## Install
69
+
70
+ Node.js ≥ 18 is required.
71
+
72
+ ### From npm (recommended)
73
+
74
+ ```bash
75
+ npm install -g kimi-code-memory-mcp-server
76
+ ```
77
+
78
+ ### From source
79
+
80
+ ```bash
81
+ git clone https://github.com/Zehee/kimi-code-memory-mcp-server.git
82
+ cd kimi-code-memory-mcp-server
83
+ npm install
84
+ npm run build
85
+ ```
86
+
87
+ ## Quick Setup (recommended)
88
+
89
+ After installing from npm, run the setup command to configure Kimi Code CLI automatically:
90
+
91
+ ```bash
92
+ npx kimi-memory-setup
93
+ ```
94
+
95
+ This will:
96
+
97
+ 1. Detect your `~/.kimi-code` directory.
98
+ 2. Inject memory protocol rules at the top of `~/.kimi-code/AGENTS.md`.
99
+ 3. Install the `memory-manage` skill to `~/.kimi-code/skills/memory-manage`.
100
+ 4. Add the `kimi-memory` MCP server entry to `~/.kimi-code/mcp.json`.
101
+
102
+ Preview changes without writing anything:
103
+
104
+ ```bash
105
+ npx kimi-memory-setup --dry-run
106
+ ```
107
+
108
+ Remove the injected configuration later:
109
+
110
+ ```bash
111
+ npx kimi-memory-setup --undo
112
+ ```
113
+
114
+ ## Configure Kimi Code CLI (manual)
115
+
116
+ If you prefer to configure manually, edit `~/.kimi-code/mcp.json` and add the server.
117
+
118
+ If you installed from npm with `-g`, use the absolute path to `dist/server.js` inside your global `node_modules`:
119
+
120
+ ```json
121
+ {
122
+ "mcpServers": {
123
+ "kimi-memory": {
124
+ "command": "node",
125
+ "args": ["/absolute/path/to/global/node_modules/kimi-code-memory-mcp-server/dist/server.js"],
126
+ "enabled": true
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ Or run it directly via `npx` (no install required):
133
+
134
+ ```json
135
+ {
136
+ "mcpServers": {
137
+ "kimi-memory": {
138
+ "command": "npx",
139
+ "args": ["-y", "kimi-code-memory-mcp-server"],
140
+ "enabled": true
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ If you built from source, point to your local `dist/server.js`:
147
+
148
+ ```json
149
+ {
150
+ "mcpServers": {
151
+ "kimi-memory": {
152
+ "command": "node",
153
+ "args": ["/absolute/path/to/kimi-code-memory-mcp-server/dist/server.js"],
154
+ "enabled": true
155
+ }
156
+ }
157
+ }
158
+ ```
159
+
160
+ The server name **`kimi-memory`** is important because the bundled `AGENTS.md` rules call tools as `mcp__kimi-memory__*` (for example `mcp__kimi-memory__bootstrap_workspace`).
161
+
162
+ Restart Kimi Code CLI to load the server.
163
+
164
+ ## Optional: Install User-Level AGENTS.md Startup Hook
165
+
166
+ For automatic memory recovery and behavioral rules on every session start, copy the bundled `AGENTS.md` to your Kimi Code user directory:
167
+
168
+ ```bash
169
+ cp AGENTS.md ~/.kimi-code/AGENTS.md
170
+ ```
171
+
172
+ This installs a startup hook that tells Kimi Code CLI to call `bootstrap_workspace` at the beginning of every session, and to follow the memory classification and decision-guard rules. Because `AGENTS.md` is injected into **every** session, it is the right place for memory-related behavior protocols.
173
+
174
+ > **Note:** Keep `AGENTS.md` focused on memory-related conventions only. Do not include tool preferences that belong to other MCP servers.
175
+ >
176
+ > **Prerequisite:** The MCP server must be registered under the name `kimi-memory` in `~/.kimi-code/mcp.json`, otherwise the `mcp__kimi-memory__*` calls in `AGENTS.md` will fail.
177
+
178
+ ## Optional: Install the Memory Skill
179
+
180
+ This repository also includes a lightweight Skill (`skills/memory-manage/SKILL.md`) that reminds Kimi Code CLI to call the memory tools when the user expresses a memory-related intent.
181
+
182
+ ```bash
183
+ cp -r skills/memory-manage ~/.kimi-code/skills/memory-manage
184
+ ```
185
+
186
+ The Skill does **not** enforce behavior on its own; it is a dispatcher. The actual protocols (when to remember, decision guard, etc.) live in `AGENTS.md`.
187
+
188
+ ## Quick Start
189
+
190
+ After the server is loaded, the agent can call memory tools naturally (tool names are prefixed with the MCP server name you configured, e.g. `mcp__kimi-memory__*`):
191
+
192
+ ```text
193
+ User: Let's use SQLite for the cache layer.
194
+ Agent: [calls mcp__kimi-memory__remember] key=use-sqlite-cache, folder=memory/decisions
195
+
196
+ User: Why did we choose SQLite?
197
+ Agent: [calls mcp__kimi-memory__search] query=SQLite cache decision
198
+ [calls mcp__kimi-memory__recall] key=use-sqlite-cache, folder=memory/decisions
199
+ → "We chose SQLite over Redis because..."
200
+
201
+ User: How has the cache design evolved?
202
+ Agent: [calls mcp__kimi-memory__tag_theme] theme=cache-design
203
+ [calls mcp__kimi-memory__trace_theme] theme=cache-design
204
+ → shows related turns and decisions across sessions
205
+ ```
206
+
207
+ ## Storage Layout
208
+
209
+ The server stores data under `~/.kimi-code-memory/<workspace-id>/`:
210
+
211
+ ```text
212
+ ~/.kimi-code-memory/workspace-a1b2c3d4/
213
+ ├── index.json # v3-kv metadata cache (rebuildable)
214
+ ├── memory/
215
+ │ ├── decisions/ # architecture and product decisions
216
+ │ ├── knowledge/ # project-specific knowledge
217
+ │ ├── rules/ # conventions and guardrails
218
+ │ └── reference/ # external references
219
+ ├── essence/
220
+ │ └── essence.md # workspace digest (≤15 KB)
221
+ ├── notes/ # scratch notes
222
+ ├── themes/
223
+ │ └── my-theme.json # theme -> turn/memory refs
224
+ └── refined/
225
+ └── refined.sqlite # turn-level summaries
226
+ ```
227
+
228
+ You can override the storage root with the `MEMORY_STORE_ROOT` environment variable.
229
+
230
+ ### Environment Variables
231
+
232
+ | Variable | Purpose |
233
+ |----------|---------|
234
+ | `MEMORY_STORE_ROOT` | Override the default `~/.kimi-code-memory` storage root. |
235
+ | `MEMORY_SESSIONS_ROOT` | Override the default `~/.kimi-code/sessions` path used to discover `wire.jsonl` files. |
236
+ | `KIMI_CODE_HOME` | Alternative to `MEMORY_SESSIONS_ROOT`; sessions are read from `<KIMI_CODE_HOME>/sessions`. |
237
+
238
+ ## Tools
239
+
240
+ | Tool | Purpose |
241
+ |------|---------|
242
+ | `remember` | Write a Markdown memory |
243
+ | `recall` | Read a memory by key |
244
+ | `search` | Keyword search across memories |
245
+ | `list` | List memories, with optional folder / tag filter and limit |
246
+ | `list_tags` | List all tags |
247
+ | `delete` | Delete a memory |
248
+ | `move` | Move or rename a memory |
249
+ | `organize_memories` | Distill `memory/` into `essence/essence.md` |
250
+ | `sync_workspace_index` | Rebuild `index.json` from disk |
251
+ | `bootstrap_workspace` | Load context, essence, and memory tree |
252
+ | `load_workspace_context` | Load recent conversation context |
253
+ | `load_more_context` | Load older conversation rounds |
254
+ | `search_context` | Search across all session wires |
255
+ | `load_turn_context` | Load specific turn details |
256
+ | `tag_theme` | Associate a turn or memory with a theme |
257
+ | `trace_theme` | Trace a theme's evolution |
258
+ | `list_themes` | List themes |
259
+ | `open_memory_dashboard` | Open the memory dashboard in the browser |
260
+ | `refine_session_turns` | Generate refined turn summaries |
261
+
262
+ ## Dashboard
263
+
264
+ A standalone web dashboard is available to visualize workspace memory, theme timelines, and recent decisions:
265
+
266
+ ```bash
267
+ npx kimi-memory-vis
268
+ ```
269
+
270
+ It starts on `http://127.0.0.1:58628` and opens the browser automatically.
271
+
272
+ To auto-start the dashboard when the MCP server starts:
273
+
274
+ ```bash
275
+ export KIMI_MEMORY_AUTO_VIS=1
276
+ ```
277
+
278
+ Or ask the Agent to open it:
279
+
280
+ ```json
281
+ { "name": "open_memory_dashboard" }
282
+ ```
283
+
284
+ ## Development
285
+
286
+ ```bash
287
+ git clone https://github.com/Zehee/kimi-code-memory-mcp-server.git
288
+ cd kimi-code-memory-mcp-server
289
+ npm install
290
+ npm run build
291
+ npm test
292
+ npm run lint
293
+ ```
294
+
295
+ See [`docs/CONTRIBUTING.md`](./docs/CONTRIBUTING.md) for contribution guidelines.
296
+
297
+ ## Project Structure
298
+
299
+ ```text
300
+ src/
301
+ ├── server.ts # MCP server entry
302
+ ├── config.ts # defaults and paths
303
+ ├── theme-manager.ts # theme storage
304
+ ├── refined-manager.ts # refined turn storage
305
+ ├── dao/
306
+ │ ├── index.ts # index.json DAO (v3-kv)
307
+ │ └── memory-store.ts # Markdown file operations
308
+ ├── context/
309
+ │ └── wire-context.ts # wire.jsonl parsing
310
+ ├── tools/
311
+ │ ├── index.ts # tool schemas & dispatch
312
+ │ ├── memory-tools.ts # memory CRUD
313
+ │ ├── context-tools.ts # context recovery
314
+ │ ├── theme-tools.ts # theme tracing
315
+ │ └── system-tools.ts # organize/sync/bootstrap
316
+ └── utils/
317
+ ├── frontmatter.ts
318
+ ├── paths.ts
319
+ └── validation.ts
320
+ ```
321
+
322
+ ## Roadmap
323
+
324
+ - [x] Modular source structure
325
+ - [x] ESLint + Prettier
326
+ - [x] Basic integration tests
327
+ - [x] Core test coverage for context/theme tools
328
+ - [ ] Optional local embedding search
329
+ - [ ] Optional LLM-based turn refinement
330
+ - [ ] Pluggable wire format adapters
331
+ - [ ] Memory usage benchmarks
332
+
333
+ ## Related Documents
334
+
335
+ - [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) — system design and data flow
336
+ - [`docs/three-layer-memory-model.md`](./docs/three-layer-memory-model.md) — the theoretical memory model behind this server
337
+ - [`docs/search-logic.md`](./docs/search-logic.md) — how `search` and `search_context` work
338
+ - [`docs/CONTRIBUTING.md`](./docs/CONTRIBUTING.md) — how to contribute
339
+
340
+ ## License
341
+
342
+ MIT