@rvboris/opencode-mempalace 0.2.0 → 0.3.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 +137 -96
- package/README.ru.md +136 -95
- package/dist/bridge/mempalace_adapter.py +16 -11
- package/dist/plugin/hooks/event.js +37 -3
- package/dist/plugin/hooks/system.js +2 -0
- package/dist/plugin/index.js +2 -0
- package/dist/plugin/lib/adapter.js +18 -4
- package/dist/plugin/lib/constants.d.ts +4 -0
- package/dist/plugin/lib/constants.js +4 -0
- package/dist/plugin/lib/status.d.ts +105 -0
- package/dist/plugin/lib/status.js +537 -0
- package/dist/plugin/lib/types.d.ts +2 -2
- package/dist/plugin/lib/types.js +2 -2
- package/dist/plugin/tools/mempalace-memory.js +36 -1
- package/dist/plugin/tools/mempalace-status.d.ts +11 -0
- package/dist/plugin/tools/mempalace-status.js +18 -0
- package/dist/plugin/tui/hud.d.ts +3 -0
- package/dist/plugin/tui/hud.js +54 -0
- package/dist/plugin/tui/index.d.ts +6 -0
- package/dist/plugin/tui/index.js +9 -0
- package/package.json +14 -1
package/README.md
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @rvboris/opencode-mempalace
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Persistent memory for OpenCode — zero config, visible results.**
|
|
4
|
+
|
|
5
|
+
Your AI coding assistant forgets everything between sessions. This plugin fixes that. It silently saves what matters and finds it when needed — no extra prompts, no manual effort.
|
|
4
6
|
|
|
5
7
|
[Русская версия](./README.ru.md)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
|
|
13
|
+
Before every reply, the plugin searches your memory for relevant context. After every session, it quietly saves durable knowledge. You never have to say "remember this" — but when you do, it listens.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
You: "What build tool does this project use?"
|
|
17
|
+
AI: [searches memory] → "Bun. You decided that on April 10."
|
|
18
|
+
```
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+
### The result
|
|
10
21
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
22
|
+
- Answers informed by your past decisions, preferences, and project history
|
|
23
|
+
- No repeated explanations across sessions
|
|
24
|
+
- Privacy-first: secrets and private blocks are never stored
|
|
25
|
+
- Works entirely locally — no cloud, no API keys, no MCP server
|
|
15
26
|
|
|
16
27
|
## Quick start
|
|
17
28
|
|
|
18
|
-
|
|
29
|
+
**Prerequisites:** [OpenCode](https://opencode.ai) and Python 3.10+ with pip.
|
|
19
30
|
|
|
20
31
|
```bash
|
|
21
32
|
pip install mempalace
|
|
22
|
-
mempalace init
|
|
23
|
-
mempalace mine <dir>
|
|
33
|
+
mempalace init ~/.mempalace/palace
|
|
24
34
|
```
|
|
25
35
|
|
|
26
|
-
Add
|
|
36
|
+
Add to `opencode.json`:
|
|
27
37
|
|
|
28
38
|
```json
|
|
29
39
|
{
|
|
@@ -31,96 +41,88 @@ Add the plugin to `opencode.json`:
|
|
|
31
41
|
}
|
|
32
42
|
```
|
|
33
43
|
|
|
34
|
-
That
|
|
44
|
+
That's it. Memory search, autosave, and both tools are active immediately.
|
|
35
45
|
|
|
36
|
-
##
|
|
46
|
+
## Features
|
|
37
47
|
|
|
38
|
-
|
|
39
|
-
- autosave on session lifecycle events
|
|
40
|
-
- separate user and project memory
|
|
41
|
-
- one safe memory tool for the model
|
|
42
|
-
- local Python bridge to MemPalace
|
|
48
|
+
### Hidden retrieval
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
Before each answer, the plugin injects a search instruction so the model checks your memory first. No tool call noise in the chat — the context just appears.
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
### Background autosave
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
On session idle, compaction, or close, the plugin mines the conversation transcript for durable facts and saves them to the right memory area automatically.
|
|
49
55
|
|
|
50
|
-
###
|
|
56
|
+
### `mempalace_memory` — the one tool
|
|
51
57
|
|
|
52
|
-
|
|
53
|
-
- **`search`** — find relevant memory by query
|
|
54
|
-
- **`kg_add`** — add a structured fact to the knowledge graph
|
|
55
|
-
- **`diary_write`** — save a short work note or daily log
|
|
56
|
-
- **`mine_messages`** — internal autosave mode used by the plugin
|
|
58
|
+
Four modes, one interface:
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
| Mode | Purpose |
|
|
61
|
+
|---|---|
|
|
62
|
+
| `save` | Store a preference, fact, or decision |
|
|
63
|
+
| `search` | Find relevant memory by query |
|
|
64
|
+
| `kg_add` | Add a structured fact to the knowledge graph |
|
|
65
|
+
| `diary_write` | Save a short work note |
|
|
59
66
|
|
|
60
|
-
|
|
67
|
+
Examples:
|
|
61
68
|
|
|
62
69
|
```text
|
|
63
|
-
mempalace_memory
|
|
64
|
-
mode: save
|
|
65
|
-
scope: user
|
|
66
|
-
room: preferences
|
|
67
|
-
content: Prefers concise responses and numbered steps.
|
|
70
|
+
mempalace_memory mode: save scope: user room: preferences content: Prefers concise responses.
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
```text
|
|
74
|
+
mempalace_memory mode: search scope: project room: decisions query: build tool
|
|
75
|
+
```
|
|
71
76
|
|
|
72
77
|
```text
|
|
73
|
-
mempalace_memory
|
|
74
|
-
mode: save
|
|
75
|
-
scope: project
|
|
76
|
-
room: decisions
|
|
77
|
-
content: Use Bun for builds and tests.
|
|
78
|
+
mempalace_memory mode: kg_add subject: my-repo predicate: uses object: bun
|
|
78
79
|
```
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
### `mempalace_status` — visible proof
|
|
82
|
+
|
|
83
|
+
Check whether the plugin is actually helping:
|
|
81
84
|
|
|
82
85
|
```text
|
|
83
|
-
|
|
84
|
-
mode: search
|
|
85
|
-
scope: project
|
|
86
|
-
room: workflow
|
|
87
|
-
query: build command
|
|
88
|
-
limit: 3
|
|
86
|
+
mempalace_status
|
|
89
87
|
```
|
|
90
88
|
|
|
91
|
-
|
|
89
|
+
Shows retrieval hit rate, last autosave outcome, memory previews, and cumulative counters. Use `verbose: true` for full detail.
|
|
90
|
+
|
|
91
|
+
### TUI HUD — memory stats in your prompt
|
|
92
|
+
|
|
93
|
+
A compact session stats line appears in the OpenCode prompt area:
|
|
92
94
|
|
|
93
|
-
```text
|
|
94
|
-
mempalace_memory
|
|
95
|
-
mode: kg_add
|
|
96
|
-
subject: my-repo
|
|
97
|
-
predicate: uses
|
|
98
|
-
object: bun
|
|
99
95
|
```
|
|
96
|
+
MEM hits 3 · saved 2 · failed 0 · writes 1
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Color-coded indicators for `SKIPPED` and `FAILED` states. Requires a `tui.json` entry (see below).
|
|
100
100
|
|
|
101
101
|
## Memory areas
|
|
102
102
|
|
|
103
|
-
**User memory**
|
|
103
|
+
**User memory** — cross-project preferences and habits:
|
|
104
104
|
|
|
105
|
-
- `preferences`
|
|
106
|
-
- `workflow`
|
|
107
|
-
- `communication`
|
|
105
|
+
- `preferences` — coding style, communication preferences
|
|
106
|
+
- `workflow` — working patterns, tool choices
|
|
107
|
+
- `communication` — language, response format
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
**Project memory** — repository-specific knowledge:
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
- `architecture` — design decisions, patterns
|
|
112
|
+
- `workflow` — build commands, CI config
|
|
113
|
+
- `decisions` — ADRs, trade-offs
|
|
114
|
+
- `bugs` — known issues, workarounds
|
|
115
|
+
- `setup` — environment setup, dependencies
|
|
112
116
|
|
|
113
|
-
|
|
114
|
-
- `workflow`
|
|
115
|
-
- `decisions`
|
|
116
|
-
- `bugs`
|
|
117
|
-
- `setup`
|
|
117
|
+
## Privacy
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
- `<private>...</private>` blocks are respected and never stored
|
|
120
|
+
- Common secrets (API keys, tokens, passwords) are redacted before writes
|
|
121
|
+
- Fully private content is skipped entirely
|
|
120
122
|
|
|
121
123
|
## Configuration
|
|
122
124
|
|
|
123
|
-
Optional config file
|
|
125
|
+
Optional config file at `~/.config/opencode/mempalace.jsonc`:
|
|
124
126
|
|
|
125
127
|
```jsonc
|
|
126
128
|
{
|
|
@@ -133,54 +135,93 @@ Optional config file: `~/.config/opencode/mempalace.jsonc`
|
|
|
133
135
|
}
|
|
134
136
|
```
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
- `MEMPALACE_AUTOSAVE_ENABLED`
|
|
139
|
-
- `MEMPALACE_RETRIEVAL_ENABLED`
|
|
140
|
-
- `MEMPALACE_KEYWORD_SAVE_ENABLED`
|
|
141
|
-
- `MEMPALACE_PRIVACY_REDACTION_ENABLED`
|
|
142
|
-
- `MEMPALACE_AUTOSAVE_LOG_FILE`
|
|
143
|
-
- `MEMPALACE_ADAPTER_PYTHON`
|
|
144
|
-
|
|
145
|
-
## Privacy
|
|
146
|
-
|
|
147
|
-
- respects `<private>...</private>` blocks
|
|
148
|
-
- redacts common secrets before writes
|
|
149
|
-
- skips fully private content
|
|
150
|
-
|
|
151
|
-
## Project docs
|
|
138
|
+
Environment variables:
|
|
152
139
|
|
|
153
|
-
|
|
154
|
-
|
|
140
|
+
| Variable | Purpose |
|
|
141
|
+
|---|---|
|
|
142
|
+
| `MEMPALACE_AUTOSAVE_ENABLED` | Toggle background autosave |
|
|
143
|
+
| `MEMPALACE_RETRIEVAL_ENABLED` | Toggle hidden retrieval |
|
|
144
|
+
| `MEMPALACE_KEYWORD_SAVE_ENABLED` | Toggle keyword-triggered saves |
|
|
145
|
+
| `MEMPALACE_PRIVACY_REDACTION_ENABLED` | Toggle secret redaction |
|
|
146
|
+
| `MEMPALACE_ADAPTER_PYTHON` | Path to Python binary |
|
|
147
|
+
| `MEMPALACE_ADAPTER_TIMEOUT_MS` | Adapter timeout (default 15000) |
|
|
155
148
|
|
|
156
|
-
##
|
|
149
|
+
## TUI HUD setup
|
|
157
150
|
|
|
158
|
-
|
|
151
|
+
To enable the prompt-area stats display, add a `tui.json` in your OpenCode config directory:
|
|
159
152
|
|
|
160
|
-
```
|
|
153
|
+
```json
|
|
161
154
|
{
|
|
162
|
-
"$schema": "https://opencode.ai/
|
|
155
|
+
"$schema": "https://opencode.ai/tui.json",
|
|
163
156
|
"plugin": [
|
|
164
|
-
"file:///
|
|
157
|
+
"file:///path/to/mempalace-autosave/plugin/tui/index.tsx"
|
|
165
158
|
]
|
|
166
159
|
}
|
|
167
160
|
```
|
|
168
161
|
|
|
169
|
-
|
|
162
|
+
Or when installed from npm, use the package entry:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"$schema": "https://opencode.ai/tui.json",
|
|
167
|
+
"plugin": ["@rvboris/opencode-mempalace/tui"]
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## How it works
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
User message
|
|
175
|
+
→ system hook injects "search memory first" instruction
|
|
176
|
+
→ model calls mempalace_memory [search]
|
|
177
|
+
→ results inform the answer
|
|
178
|
+
|
|
179
|
+
Session ends / idles
|
|
180
|
+
→ event hook mines transcript
|
|
181
|
+
→ Python adapter saves durable facts via MemPalace
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
The plugin uses a local Python bridge (`bridge/mempalace_adapter.py`) to communicate with MemPalace. It does **not** require the MemPalace MCP server.
|
|
185
|
+
|
|
186
|
+
## Compatibility
|
|
187
|
+
|
|
188
|
+
| Requirement | Version |
|
|
189
|
+
|---|---|
|
|
190
|
+
| OpenCode | latest |
|
|
191
|
+
| Python | 3.10+ |
|
|
192
|
+
| MemPalace | 3.3+ |
|
|
193
|
+
| OS | macOS, Linux, Windows |
|
|
194
|
+
|
|
195
|
+
## Project docs
|
|
196
|
+
|
|
197
|
+
- [Changelog](./CHANGELOG.md) — release history
|
|
198
|
+
- [Contributing](./CONTRIBUTING.md) — changelog rules
|
|
199
|
+
|
|
200
|
+
## Local development
|
|
170
201
|
|
|
171
202
|
```bash
|
|
203
|
+
git clone https://github.com/rvboris/opencode-mempalace.git
|
|
204
|
+
cd opencode-mempalace/mempalace-autosave
|
|
205
|
+
npm install
|
|
172
206
|
npm run build
|
|
173
207
|
```
|
|
174
208
|
|
|
175
|
-
|
|
209
|
+
Load from source in `opencode.json`:
|
|
176
210
|
|
|
177
|
-
```
|
|
178
|
-
|
|
211
|
+
```jsonc
|
|
212
|
+
{
|
|
213
|
+
"plugin": ["file:///ABSOLUTE/PATH/TO/mempalace-autosave/plugin/index.ts"]
|
|
214
|
+
}
|
|
179
215
|
```
|
|
180
216
|
|
|
181
|
-
|
|
217
|
+
Debug: `opencode --log-level DEBUG` or check `~/.mempalace/opencode_autosave.log`.
|
|
182
218
|
|
|
183
219
|
## Links
|
|
184
220
|
|
|
185
221
|
- OpenCode: https://opencode.ai
|
|
186
222
|
- MemPalace: https://github.com/milla-jovovich/mempalace
|
|
223
|
+
- npm: https://www.npmjs.com/package/@rvboris/opencode-mempalace
|
|
224
|
+
|
|
225
|
+
## License
|
|
226
|
+
|
|
227
|
+
MIT
|
package/README.ru.md
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @rvboris/opencode-mempalace
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Персистентная память для OpenCode — нулевая конфигурация, видимый результат.**
|
|
4
|
+
|
|
5
|
+
Твой ИИ-ассистент забывает всё между сессиями. Этот плагин это исправляет. Он незаметно сохраняет важное и находит его, когда нужно — без лишних подсказок и ручной работы.
|
|
4
6
|
|
|
5
7
|
[English version](./README.md)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Что он делает
|
|
12
|
+
|
|
13
|
+
Перед каждым ответом плагин ищет в памяти релевантный контекст. После каждой сессии — тихо сохраняет устойчивые знания. Тебе не нужно говорить «запомни это» — но если скажешь, плагин услышит.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Ты: "Какую систему сборки мы используем?"
|
|
17
|
+
ИИ: [ищет в памяти] → "Bun. Это решение приняли 10 апреля."
|
|
18
|
+
```
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+
### Результат
|
|
10
21
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
22
|
+
- Ответы, опирающиеся на прошлые решения, предпочтения и историю проекта
|
|
23
|
+
- Не нужно повторять объяснения от сессии к сессии
|
|
24
|
+
- Приватность: секреты и приватные блоки никогда не сохраняются
|
|
25
|
+
- Работает полностью локально — без облака, API-ключей и MCP-сервера
|
|
15
26
|
|
|
16
27
|
## Быстрый старт
|
|
17
28
|
|
|
18
|
-
|
|
29
|
+
**Требования:** [OpenCode](https://opencode.ai) и Python 3.10+ с pip.
|
|
19
30
|
|
|
20
31
|
```bash
|
|
21
32
|
pip install mempalace
|
|
22
|
-
mempalace init
|
|
23
|
-
mempalace mine <dir>
|
|
33
|
+
mempalace init ~/.mempalace/palace
|
|
24
34
|
```
|
|
25
35
|
|
|
26
|
-
Добавь
|
|
36
|
+
Добавь в `opencode.json`:
|
|
27
37
|
|
|
28
38
|
```json
|
|
29
39
|
{
|
|
@@ -31,92 +41,84 @@ mempalace mine <dir>
|
|
|
31
41
|
}
|
|
32
42
|
```
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
Готово. Поиск по памяти, автосохранение и оба инструмента активны сразу.
|
|
35
45
|
|
|
36
|
-
##
|
|
46
|
+
## Возможности
|
|
37
47
|
|
|
38
|
-
|
|
39
|
-
- автосохранение на событиях сессии
|
|
40
|
-
- раздельную память для пользователя и проекта
|
|
41
|
-
- один безопасный инструмент для работы с памятью
|
|
42
|
-
- локальную Python-прослойку для MemPalace
|
|
48
|
+
### Скрытый поиск
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
Перед каждым ответом плагин подставляет инструкцию «сначала проверь память». Модель видит релевантный контекст без лишнего шума в чате.
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
### Фоновое автосохранение
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
При простое сессии, компактизации или завершении — плагин анализирует транскрипт, извлекает устойчивые факты и сохраняет их в нужную область памяти.
|
|
49
55
|
|
|
50
|
-
###
|
|
56
|
+
### `mempalace_memory` — единый инструмент
|
|
51
57
|
|
|
52
|
-
|
|
53
|
-
- **`search`** — найти релевантную память по запросу
|
|
54
|
-
- **`kg_add`** — добавить структурированный факт в граф знаний
|
|
55
|
-
- **`diary_write`** — записать короткую рабочую заметку
|
|
56
|
-
- **`mine_messages`** — внутренний режим автосохранения, который использует сам плагин
|
|
58
|
+
Четыре режима, один интерфейс:
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
| Режим | Назначение |
|
|
61
|
+
|---|---|
|
|
62
|
+
| `save` | Сохранить предпочтение, факт или решение |
|
|
63
|
+
| `search` | Найти релевантную память по запросу |
|
|
64
|
+
| `kg_add` | Добавить структурированный факт в граф знаний |
|
|
65
|
+
| `diary_write` | Записать короткую рабочую заметку |
|
|
59
66
|
|
|
60
|
-
|
|
67
|
+
Примеры:
|
|
61
68
|
|
|
62
69
|
```text
|
|
63
|
-
mempalace_memory
|
|
64
|
-
mode: save
|
|
65
|
-
scope: user
|
|
66
|
-
room: preferences
|
|
67
|
-
content: Prefers concise responses and numbered steps.
|
|
70
|
+
mempalace_memory mode: save scope: user room: preferences content: Предпочитает краткие ответы.
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
```text
|
|
74
|
+
mempalace_memory mode: search scope: project room: decisions query: система сборки
|
|
75
|
+
```
|
|
71
76
|
|
|
72
77
|
```text
|
|
73
|
-
mempalace_memory
|
|
74
|
-
mode: save
|
|
75
|
-
scope: project
|
|
76
|
-
room: decisions
|
|
77
|
-
content: Use Bun for builds and tests.
|
|
78
|
+
mempalace_memory mode: kg_add subject: my-repo predicate: uses object: bun
|
|
78
79
|
```
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
### `mempalace_status` — видимое доказательство
|
|
82
|
+
|
|
83
|
+
Проверь, реально ли плагин помогает:
|
|
81
84
|
|
|
82
85
|
```text
|
|
83
|
-
|
|
84
|
-
mode: search
|
|
85
|
-
scope: project
|
|
86
|
-
room: workflow
|
|
87
|
-
query: build command
|
|
88
|
-
limit: 3
|
|
86
|
+
mempalace_status
|
|
89
87
|
```
|
|
90
88
|
|
|
91
|
-
|
|
89
|
+
Показывает процент попаданий при поиске, последний результат автосохранения, превью памяти и накопительные счётчики. Для полного отчёта — `verbose: true`.
|
|
90
|
+
|
|
91
|
+
### TUI HUD — статистика памяти в строке промпта
|
|
92
|
+
|
|
93
|
+
Компактная строка статистики текущей сессии в области ввода OpenCode:
|
|
92
94
|
|
|
93
|
-
```text
|
|
94
|
-
mempalace_memory
|
|
95
|
-
mode: kg_add
|
|
96
|
-
subject: my-repo
|
|
97
|
-
predicate: uses
|
|
98
|
-
object: bun
|
|
99
95
|
```
|
|
96
|
+
MEM hits 3 · saved 2 · failed 0 · writes 1
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Цветовые индикаторы для `SKIPPED` и `FAILED`. Требует записи в `tui.json` (см. ниже).
|
|
100
100
|
|
|
101
101
|
## Области памяти
|
|
102
102
|
|
|
103
|
-
**Память пользователя**
|
|
103
|
+
**Память пользователя** — кросс-проектные предпочтения и привычки:
|
|
104
104
|
|
|
105
|
-
- `preferences`
|
|
106
|
-
- `workflow`
|
|
107
|
-
- `communication`
|
|
105
|
+
- `preferences` — стиль кода, предпочтения общения
|
|
106
|
+
- `workflow` — рабочие паттерны, выбор инструментов
|
|
107
|
+
- `communication` — язык, формат ответов
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
**Память проекта** — знания, привязанные к репозиторию:
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
- `architecture` — архитектурные решения, паттерны
|
|
112
|
+
- `workflow` — команды сборки, CI-конфиг
|
|
113
|
+
- `decisions` — ADR, компромиссы
|
|
114
|
+
- `bugs` — известные баги, обходные пути
|
|
115
|
+
- `setup` — настройка окружения, зависимости
|
|
112
116
|
|
|
113
|
-
|
|
114
|
-
- `workflow`
|
|
115
|
-
- `decisions`
|
|
116
|
-
- `bugs`
|
|
117
|
-
- `setup`
|
|
117
|
+
## Приватность
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
- Блоки `<private>...</private>` уважаются и никогда не сохраняются
|
|
120
|
+
- Типовые секреты (API-ключи, токены, пароли) скрываются перед записью
|
|
121
|
+
- Полностью приватное содержимое пропускается целиком
|
|
120
122
|
|
|
121
123
|
## Настройка
|
|
122
124
|
|
|
@@ -133,54 +135,93 @@ mempalace_memory
|
|
|
133
135
|
}
|
|
134
136
|
```
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
- `MEMPALACE_AUTOSAVE_ENABLED`
|
|
139
|
-
- `MEMPALACE_RETRIEVAL_ENABLED`
|
|
140
|
-
- `MEMPALACE_KEYWORD_SAVE_ENABLED`
|
|
141
|
-
- `MEMPALACE_PRIVACY_REDACTION_ENABLED`
|
|
142
|
-
- `MEMPALACE_AUTOSAVE_LOG_FILE`
|
|
143
|
-
- `MEMPALACE_ADAPTER_PYTHON`
|
|
144
|
-
|
|
145
|
-
## Приватность
|
|
146
|
-
|
|
147
|
-
- поддерживаются блоки `<private>...</private>`
|
|
148
|
-
- типовые секреты скрываются перед записью
|
|
149
|
-
- полностью приватное содержимое не сохраняется
|
|
150
|
-
|
|
151
|
-
## Документация проекта
|
|
138
|
+
Переменные окружения:
|
|
152
139
|
|
|
153
|
-
|
|
154
|
-
|
|
140
|
+
| Переменная | Назначение |
|
|
141
|
+
|---|---|
|
|
142
|
+
| `MEMPALACE_AUTOSAVE_ENABLED` | Включить/выключить фоновое автосохранение |
|
|
143
|
+
| `MEMPALACE_RETRIEVAL_ENABLED` | Включить/выключить скрытый поиск |
|
|
144
|
+
| `MEMPALACE_KEYWORD_SAVE_ENABLED` | Включить/выключить сохранение по ключевым словам |
|
|
145
|
+
| `MEMPALACE_PRIVACY_REDACTION_ENABLED` | Включить/выключить скрытие секретов |
|
|
146
|
+
| `MEMPALACE_ADAPTER_PYTHON` | Путь к бинарнику Python |
|
|
147
|
+
| `MEMPALACE_ADAPTER_TIMEOUT_MS` | Таймаут адаптера (по умолчанию 15000) |
|
|
155
148
|
|
|
156
|
-
##
|
|
149
|
+
## Настройка TUI HUD
|
|
157
150
|
|
|
158
|
-
|
|
151
|
+
Чтобы включить отображение статистики в строке промпта, добавь `tui.json` в каталог конфигурации OpenCode:
|
|
159
152
|
|
|
160
|
-
```
|
|
153
|
+
```json
|
|
161
154
|
{
|
|
162
|
-
"$schema": "https://opencode.ai/
|
|
155
|
+
"$schema": "https://opencode.ai/tui.json",
|
|
163
156
|
"plugin": [
|
|
164
|
-
"file
|
|
157
|
+
"file:///путь/до/mempalace-autosave/plugin/tui/index.tsx"
|
|
165
158
|
]
|
|
166
159
|
}
|
|
167
160
|
```
|
|
168
161
|
|
|
169
|
-
|
|
162
|
+
Или при установке из npm — используй пакетный вход:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"$schema": "https://opencode.ai/tui.json",
|
|
167
|
+
"plugin": ["@rvboris/opencode-mempalace/tui"]
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Как это работает
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
Сообщение пользователя
|
|
175
|
+
→ системный хук подставляет «сначала проверь память»
|
|
176
|
+
→ модель вызывает mempalace_memory [search]
|
|
177
|
+
→ результаты влияют на ответ
|
|
178
|
+
|
|
179
|
+
Сессия завершается / простаивает
|
|
180
|
+
→ хук событий анализирует транскрипт
|
|
181
|
+
→ Python-адаптер сохраняет устойчивые факты через MemPalace
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Плагин использует локальную Python-прослойку (`bridge/mempalace_adapter.py`) для работы с MemPalace. Ему **не нужен** MCP-сервер MemPalace.
|
|
185
|
+
|
|
186
|
+
## Совместимость
|
|
187
|
+
|
|
188
|
+
| Требование | Версия |
|
|
189
|
+
|---|---|
|
|
190
|
+
| OpenCode | latest |
|
|
191
|
+
| Python | 3.10+ |
|
|
192
|
+
| MemPalace | 3.3+ |
|
|
193
|
+
| ОС | macOS, Linux, Windows |
|
|
194
|
+
|
|
195
|
+
## Документация проекта
|
|
196
|
+
|
|
197
|
+
- [Changelog](./CHANGELOG.md) — история изменений
|
|
198
|
+
- [Contributing](./CONTRIBUTING.md) — правила ведения changelog
|
|
199
|
+
|
|
200
|
+
## Локальная разработка
|
|
170
201
|
|
|
171
202
|
```bash
|
|
203
|
+
git clone https://github.com/rvboris/opencode-mempalace.git
|
|
204
|
+
cd opencode-mempalace/mempalace-autosave
|
|
205
|
+
npm install
|
|
172
206
|
npm run build
|
|
173
207
|
```
|
|
174
208
|
|
|
175
|
-
|
|
209
|
+
Загрузка из исходников в `opencode.json`:
|
|
176
210
|
|
|
177
|
-
```
|
|
178
|
-
|
|
211
|
+
```jsonc
|
|
212
|
+
{
|
|
213
|
+
"plugin": ["file:///ABSOLUTE/PATH/TO/mempalace-autosave/plugin/index.ts"]
|
|
214
|
+
}
|
|
179
215
|
```
|
|
180
216
|
|
|
181
|
-
|
|
217
|
+
Отладка: `opencode --log-level DEBUG` или файл `~/.mempalace/opencode_autosave.log`.
|
|
182
218
|
|
|
183
219
|
## Ссылки
|
|
184
220
|
|
|
185
221
|
- OpenCode: https://opencode.ai
|
|
186
222
|
- MemPalace: https://github.com/milla-jovovich/mempalace
|
|
223
|
+
- npm: https://www.npmjs.com/package/@rvboris/opencode-mempalace
|
|
224
|
+
|
|
225
|
+
## Лицензия
|
|
226
|
+
|
|
227
|
+
MIT
|