crbro-memory 1.7.0 β†’ 1.8.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 CHANGED
@@ -1,224 +1,260 @@
1
- # 🧠 CRBRO β€” Persistent Neural Memory for AI
2
-
3
- [![npm](https://img.shields.io/npm/v/crbro-memory)](https://www.npmjs.com/package/crbro-memory)
4
- [![license](https://img.shields.io/github/license/Octonove/crbro-memory)](LICENSE)
5
- [![MCP](https://img.shields.io/badge/MCP-Claude%20Code%20%C2%B7%20Claude%20Desktop%20%C2%B7%20Cursor-1E3A5F)](https://modelcontextprotocol.io)
6
-
7
- **CRBRO** is a local MCP (Model Context Protocol) server that gives your AI assistant **persistent long-term memory** across sessions. It uses a biological neural architecture β€” cortex, synapses, hippocampus β€” to store, connect, and retrieve knowledge automatically.
8
-
9
- ![CRBRO demo](docs/demo.gif)
10
-
11
- Free and open source (MIT). All 21 tools included β€” no license, no account, no tiers.
12
-
13
- > ⭐ **If CRBRO gives your AI a memory worth keeping, a star on GitHub is the best way to support it.**
14
-
15
- ## Features
16
-
17
- - **🧬 Biological Architecture** β€” Knowledge organized as neurons (cortex), connections (synapses), and session memory (hippocampus)
18
- - **πŸ” Fact-Level Search** β€” Powered by [Orama](https://orama.com/). Every fact is indexed on its own, so a topic with hundreds of facts stays as findable as one with three, and each result comes back with the exact fact that matched and the date it was recorded
19
- - **πŸ”₯ Heat Scores** β€” Automatic relevance tracking based on frequency, recency, and connectivity
20
- - **✏️ Correctable** β€” Knowledge can be superseded or retracted, not just piled up. A memory that only appends keeps serving yesterday's answer with today's confidence
21
- - **πŸ” Credential-aware** β€” API keys, tokens and passwords are replaced with a marker before they touch the disk. The sentence around them survives; the secret does not
22
- - **πŸ‘₯ Safe with two editors open** β€” Writes are serialised per neuron, so running CRBRO in two IDEs at once does not silently lose facts
23
- - **🀝 Shareable per project** β€” Put one project in a team space and it stays in step across everyone's machine. Everything else in your brain never leaves it
24
- - **πŸ—ΊοΈ Global Map** β€” Cluster detection and cross-domain bridge identification
25
- - **⛏️ Knowledge Miner** β€” Optionally scans your local `.md`/`.txt` notes and feeds them into the brain
26
- - **πŸ”’ Fully Local** β€” Runs on Node.js alone: no Python, no Docker, no databases, no external services. Your memory never leaves your machine
27
- - **πŸ’Ύ File-Based** β€” All data stored as readable JSON files in `~/.crbro/` β€” inspectable, diffable, and versionable with git
28
- - **πŸ”Œ MCP Native** β€” Works with Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible client
29
-
30
- ## Quick Start
31
-
32
- ### 1. Initialize
33
-
34
- ```bash
35
- npx crbro-memory init
36
- ```
37
-
38
- ### 2. Add to your MCP config
39
-
40
- > **Register CRBRO at the user level, not per-project.** Your brain lives in
41
- > `~/.crbro/` and is shared across every folder β€” but if you register the
42
- > server inside a single project, other folders won't have the tools and it
43
- > will *look* like the memory is gone. User-level registration makes it
44
- > available everywhere, which is the whole point.
45
-
46
- **Claude Code** (one command, available in every folder):
47
- ```bash
48
- claude mcp add --scope user crbro -- npx -y crbro-memory
49
- ```
50
-
51
- **Claude Desktop** (`~/AppData/Roaming/Claude/claude_desktop_config.json`):
52
- ```json
53
- {
54
- "mcpServers": {
55
- "crbro": {
56
- "command": "npx",
57
- "args": ["-y", "crbro-memory"]
58
- }
59
- }
60
- }
61
- ```
62
-
63
- **Cursor** (`~/.cursor/mcp.json` β€” the one in your home folder, not a project's `.cursor/`):
64
- ```json
65
- {
66
- "mcpServers": {
67
- "crbro": {
68
- "command": "npx",
69
- "args": ["-y", "crbro-memory"]
70
- }
71
- }
72
- }
73
- ```
74
-
75
- ### 3. Start using it
76
-
77
- Your AI will now have access to 21 memory tools. Start any session with `crbro_boot`.
78
-
79
- ## Tools
80
-
81
- | Tool | Description |
82
- |------|-------------|
83
- | `crbro_boot` | Boot the brain at session start β€” loads hot topics and context |
84
- | `crbro_status` | Brain status β€” neurons, synapses, sessions count |
85
- | `crbro_learn` | Store a fact, decision, pattern, or preference |
86
- | `crbro_neuron` | Read a specific neuron (topic) with all its knowledge |
87
- | `crbro_neurons` | List neurons with optional filters (domain, type, heat) |
88
- | `crbro_recall` | Search every stored fact, not just topic names β€” returns the fact that matched |
89
- | `crbro_connect` | Create or strengthen a connection between neurons |
90
- | `crbro_connections` | Get all connections for a neuron |
91
- | `crbro_session_log` | Log a session summary |
92
- | `crbro_sessions` | List recent sessions |
93
- | `crbro_context` | Read/update active working context |
94
- | `crbro_hot_topics` | Get the most active topics by heat score |
95
- | `crbro_global_map` | View the neural network β€” clusters and cross-domain bridges |
96
- | `crbro_revise` | Mark facts as superseded or retracted when they stop being true |
97
- | `crbro_audit` | Find credentials stored in the brain β€” reports the kind, never the value |
98
- | `crbro_forget` | Remove facts for good, keeping a copy in `.quarantine/` first |
99
- | `crbro_space` | Create or join a team space β€” a private git repo for shared projects |
100
- | `crbro_share` | Put one project into a space, after showing exactly what would be sent |
101
- | `crbro_sync` | Exchange notes with teammates now, instead of waiting for the next session |
102
- | `crbro_maintenance` | Brain maintenance β€” heat, pruning, integrity, index rebuild |
103
- | `crbro_consolidate` | End-of-session consolidation |
104
-
105
- ## Team memory
106
-
107
- Two people working on the same thing shouldn't have to tell their assistants
108
- the same things twice. A **space** is one or more projects shared with
109
- teammates, carried by a private git repository you own β€” no server, no account,
110
- nothing to pay for.
111
-
112
- ```bash
113
- # One person, once:
114
- crbro_space action: create name: "team" remote: git@github.com:acme/team-memory.git author: "ana"
115
- crbro_share neuron: "project_x" space: "team"
116
-
117
- # Everyone else, once:
118
- crbro_space action: join name: "team" remote: git@github.com:acme/team-memory.git author: "bruno"
119
- ```
120
-
121
- After that it is invisible: notes are exchanged at the start and end of every
122
- session. What each person learns about that project, the others' assistants
123
- know next time they sit down.
124
-
125
- **How it stays out of your way**
126
-
127
- - Nobody ever writes to anybody else's file. Each person appends to their own
128
- log and every machine rebuilds the project from all of them, so there is no
129
- conflict to resolve β€” not now, not after a week apart.
130
- - If someone marks a fact as no longer true, that wins. Retracted knowledge
131
- cannot come back to life because a stale copy still called it current.
132
- - No connection is a normal answer, not an error. Your memory works offline and
133
- whatever you saved goes out on the next sync.
134
-
135
- **What never leaves your machine**
136
-
137
- - Every project you did not explicitly share.
138
- - Preferences β€” not shareable at all, at any setting. They are the field most
139
- likely to hold a key.
140
- - Credentials. `crbro_share` refuses outright if it finds one, and tells you
141
- where. It will not redact it and send the rest.
142
-
143
- > **Sharing cannot be undone.** Once a teammate has pulled a project it is on
144
- > their disk. Removing their repository access stops anything new from reaching
145
- > them; it does not take back what they already have. That is true of any
146
- > sync system β€” worth knowing before you share, not after.
147
-
148
- ## Architecture
149
-
150
- ```
151
- ~/.crbro/
152
- β”œβ”€β”€ manifest.json ← Brain metadata
153
- β”œβ”€β”€ cortex/ ← One JSON per neuron (topic)
154
- β”‚ β”œβ”€β”€ project_octochat.json
155
- β”‚ └── tech_firebase.json
156
- β”œβ”€β”€ synapses/ ← One JSON per connection
157
- β”‚ └── syn_octochat__firebase.json
158
- β”œβ”€β”€ hippocampus/ ← One JSON per session
159
- β”‚ └── session_2026-05-06.json
160
- β”œβ”€β”€ prefrontal/ ← Working memory
161
- β”‚ β”œβ”€β”€ active_context.json
162
- β”‚ β”œβ”€β”€ hot_topics.json
163
- β”‚ └── global_map.json
164
- β”œβ”€β”€ archives/ ← Cold neurons (opt-in; nothing is archived unless you ask)
165
- β”œβ”€β”€ shared/ ← One git repo per team space. Notes only, never the cortex
166
- β”‚ └── team/
167
- β”‚ └── neurons/project_x/ops/ana.a1b2c3.jsonl
168
- └── .search/ ← Orama search index
169
- └── chunks.index.json ← one document per fact
170
- ```
171
-
172
- ## Heat Score Algorithm
173
-
174
- Each neuron has a heat score (0.0 - 1.0) calculated from:
175
-
176
- - **Frequency (35%)** β€” How often the neuron is accessed
177
- - **Recency (40%)** β€” When it was last accessed (today = 1.0, >3 months = 0.05)
178
- - **Connectivity (25%)** β€” How many synapses connect to it
179
-
180
- ## Knowledge Miner
181
-
182
- The miner is an **optional, fully local** helper that scans a directory for `.md` and `.txt` files (notes, docs, journals) and extracts knowledge into the brain β€” so CRBRO can learn from what you already wrote, not just from conversations. It never touches the network and never leaves your machine.
183
-
184
- ```bash
185
- npx crbro-memory mine [dir] # One-shot scan of a directory
186
- npx crbro-memory setup-miner # Install a scheduled auto-scan (OS task scheduler)
187
- npx crbro-memory miner-status # Check the auto-miner status
188
- npx crbro-memory remove-miner # Remove the scheduled task
189
- ```
190
-
191
- > Naming note: "miner" here means *knowledge* mining β€” extracting facts from your own text files. Nothing to do with cryptocurrency.
192
-
193
- ## CLI Commands
194
-
195
- ```bash
196
- npx crbro-memory # Start MCP server (stdio)
197
- npx crbro-memory init # Initialize brain + detect IDEs
198
- npx crbro-memory status # Show brain status
199
- npx crbro-memory reindex # Rebuild the search index
200
- npx crbro-memory eval # Measure retrieval quality against your own query set
201
- npx crbro-memory --help # Help
202
- ```
203
-
204
- ### Measuring retrieval
205
-
206
- `eval` is there so you can tell a fix from a feeling. Write
207
- `~/.crbro/.eval/queries.json` as a list of questions you would actually ask,
208
- each naming the neuron that should answer it:
209
-
210
- ```json
211
- [
212
- { "query": "how we deploy the api",
213
- "expect_neuron": "project_octochat",
214
- "expect_contains": "Cloud Run" }
215
- ]
216
- ```
217
-
218
- Then `npx crbro-memory eval` reports how often the right neuron comes back
219
- first, how often it makes the top three, and MRR β€” plus every miss, so you can
220
- see what it got wrong instead of guessing.
221
-
222
- ## License
223
-
224
- MIT β€” see [LICENSE](LICENSE). Built by [Octonove](https://github.com/Octonove).
1
+ # 🧠 CRBRO β€” Persistent Neural Memory for AI
2
+
3
+ [![npm](https://img.shields.io/npm/v/crbro-memory)](https://www.npmjs.com/package/crbro-memory)
4
+ [![license](https://img.shields.io/github/license/Octonove/crbro-memory)](LICENSE)
5
+ [![MCP](https://img.shields.io/badge/MCP-Claude%20Code%20%C2%B7%20Claude%20Desktop%20%C2%B7%20Cursor-1E3A5F)](https://modelcontextprotocol.io)
6
+
7
+ **CRBRO** is a local MCP (Model Context Protocol) server that gives your AI assistant **persistent long-term memory** across sessions. It uses a biological neural architecture β€” cortex, synapses, hippocampus β€” to store, connect, and retrieve knowledge automatically.
8
+
9
+ ![CRBRO demo](docs/demo.gif)
10
+
11
+ Free and open source (MIT). All 22 tools included β€” no license, no account, no tiers.
12
+
13
+ > ⭐ **If CRBRO gives your AI a memory worth keeping, a star on GitHub is the best way to support it.**
14
+
15
+ ## Features
16
+
17
+ - **🧬 Biological Architecture** β€” Knowledge organized as neurons (cortex), connections (synapses), and session memory (hippocampus)
18
+ - **πŸ” Fact-Level Search** β€” Powered by [Orama](https://orama.com/). Every fact is indexed on its own, so a topic with hundreds of facts stays as findable as one with three, and each result comes back with the exact fact that matched and the date it was recorded
19
+ - **πŸ”₯ Heat Scores** β€” Automatic relevance tracking based on frequency, recency, and connectivity
20
+ - **✏️ Correctable** β€” Knowledge can be superseded or retracted, not just piled up. A memory that only appends keeps serving yesterday's answer with today's confidence
21
+ - **πŸ” Credential-aware** β€” API keys, tokens and passwords are replaced with a marker before they touch the disk. The sentence around them survives; the secret does not β€” and `crbro_secret` puts the real value in your operating system's own keychain, so refusing it does not leave you with nowhere to put it
22
+ - **πŸ‘₯ Safe with two editors open** β€” Writes are serialised per neuron, so running CRBRO in two IDEs at once does not silently lose facts
23
+ - **🀝 Shareable per project** β€” Put one project in a team space and it stays in step across everyone's machine. Everything else in your brain never leaves it
24
+ - **πŸ—ΊοΈ Global Map** β€” Cluster detection and cross-domain bridge identification
25
+ - **⛏️ Knowledge Miner** β€” Optionally scans your local `.md`/`.txt` notes and feeds them into the brain
26
+ - **πŸ”’ Fully Local** β€” Runs on Node.js alone: no Python, no Docker, no databases, no external services. Your memory never leaves your machine
27
+ - **πŸ’Ύ File-Based** β€” All data stored as readable JSON files in `~/.crbro/` β€” inspectable, diffable, and versionable with git
28
+ - **πŸ”Œ MCP Native** β€” Works with Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible client
29
+
30
+ ## Quick Start
31
+
32
+ ### 1. Initialize
33
+
34
+ ```bash
35
+ npx crbro-memory init
36
+ ```
37
+
38
+ ### 2. Add to your MCP config
39
+
40
+ > **Register CRBRO at the user level, not per-project.** Your brain lives in
41
+ > `~/.crbro/` and is shared across every folder β€” but if you register the
42
+ > server inside a single project, other folders won't have the tools and it
43
+ > will *look* like the memory is gone. User-level registration makes it
44
+ > available everywhere, which is the whole point.
45
+
46
+ **Claude Code** (one command, available in every folder):
47
+ ```bash
48
+ claude mcp add --scope user crbro -- npx -y crbro-memory
49
+ ```
50
+
51
+ **Claude Desktop** (`~/AppData/Roaming/Claude/claude_desktop_config.json`):
52
+ ```json
53
+ {
54
+ "mcpServers": {
55
+ "crbro": {
56
+ "command": "npx",
57
+ "args": ["-y", "crbro-memory"]
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ **Cursor** (`~/.cursor/mcp.json` β€” the one in your home folder, not a project's `.cursor/`):
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "crbro": {
68
+ "command": "npx",
69
+ "args": ["-y", "crbro-memory"]
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ ### 3. Start using it
76
+
77
+ Your AI will now have access to 22 memory tools. Start any session with `crbro_boot`.
78
+
79
+ ## Tools
80
+
81
+ | Tool | Description |
82
+ |------|-------------|
83
+ | `crbro_boot` | Boot the brain at session start β€” loads hot topics and context |
84
+ | `crbro_status` | Brain status β€” neurons, synapses, sessions count |
85
+ | `crbro_learn` | Store a fact, decision, pattern, or preference |
86
+ | `crbro_neuron` | Read a specific neuron (topic) with all its knowledge |
87
+ | `crbro_neurons` | List neurons with optional filters (domain, type, heat) |
88
+ | `crbro_recall` | Search every stored fact, not just topic names β€” returns the fact that matched |
89
+ | `crbro_connect` | Create or strengthen a connection between neurons |
90
+ | `crbro_connections` | Get all connections for a neuron |
91
+ | `crbro_session_log` | Log a session summary |
92
+ | `crbro_sessions` | List recent sessions |
93
+ | `crbro_context` | Read/update active working context |
94
+ | `crbro_hot_topics` | Get the most active topics by heat score |
95
+ | `crbro_global_map` | View the neural network β€” clusters and cross-domain bridges |
96
+ | `crbro_revise` | Mark facts as superseded or retracted when they stop being true |
97
+ | `crbro_audit` | Find credentials stored in the brain β€” reports the kind, never the value |
98
+ | `crbro_forget` | Remove facts for good, keeping a copy in `.quarantine/` first |
99
+ | `crbro_secret` | Put a credential in the OS keychain and keep only its name in the brain |
100
+ | `crbro_space` | Create or join a team space β€” a private git repo for shared projects |
101
+ | `crbro_share` | Put one project into a space, after showing exactly what would be sent |
102
+ | `crbro_sync` | Exchange notes with teammates now, instead of waiting for the next session |
103
+ | `crbro_maintenance` | Brain maintenance β€” heat, pruning, integrity, index rebuild |
104
+ | `crbro_consolidate` | End-of-session consolidation |
105
+
106
+ ## Credentials
107
+
108
+ A memory should not hold your passwords, and CRBRO refuses to: anything shaped
109
+ like a credential is replaced with a marker before it reaches the disk. But
110
+ refusing on its own is not much help β€” the password still exists, and it ends
111
+ up back in a config file in plain text.
112
+
113
+ So `crbro_secret` gives it somewhere to go: the credential store your machine
114
+ already ships with.
115
+
116
+ | Platform | Where the value actually lives |
117
+ |----------|--------------------------------|
118
+ | macOS | Keychain, via `security` |
119
+ | Linux | Secret Service, via `secret-tool` |
120
+ | Windows | Sealed with DPAPI to your Windows account |
121
+
122
+ On a machine with no credential store β€” a headless server, a CI runner, a
123
+ locked keychain over SSH β€” `crbro_secret` says so in plain words instead of
124
+ failing. Environment variables keep working, and the rest of CRBRO is
125
+ unaffected.
126
+
127
+ CRBRO keeps no copy and writes no crypto of its own. The store sits **outside
128
+ the brain**, so no sync, no team space and no `crbro_share` can reach it. What
129
+ goes in the brain is the *name*:
130
+
131
+ > "The WordPress password for example.com is in `WP_EXAMPLE_APP_PASSWORD`."
132
+
133
+ Which is all an assistant needs to find it again next week, and useless to
134
+ anyone who reads your memory files.
135
+
136
+ An environment variable of the same name always wins, so CI and one-off
137
+ overrides work without touching the keychain. On a headless box with no
138
+ credential store, `crbro_secret` says so plainly instead of failing β€” the
139
+ environment variables still work, and the rest of CRBRO is unaffected.
140
+
141
+ ## Team memory
142
+
143
+ Two people working on the same thing shouldn't have to tell their assistants
144
+ the same things twice. A **space** is one or more projects shared with
145
+ teammates, carried by a private git repository you own β€” no server, no account,
146
+ nothing to pay for.
147
+
148
+ ```bash
149
+ # One person, once:
150
+ crbro_space action: create name: "team" remote: git@github.com:acme/team-memory.git author: "ana"
151
+ crbro_share neuron: "project_x" space: "team"
152
+
153
+ # Everyone else, once:
154
+ crbro_space action: join name: "team" remote: git@github.com:acme/team-memory.git author: "bruno"
155
+ ```
156
+
157
+ After that it is invisible: notes are exchanged at the start and end of every
158
+ session. What each person learns about that project, the others' assistants
159
+ know next time they sit down.
160
+
161
+ **How it stays out of your way**
162
+
163
+ - Nobody ever writes to anybody else's file. Each person appends to their own
164
+ log and every machine rebuilds the project from all of them, so there is no
165
+ conflict to resolve β€” not now, not after a week apart.
166
+ - If someone marks a fact as no longer true, that wins. Retracted knowledge
167
+ cannot come back to life because a stale copy still called it current.
168
+ - No connection is a normal answer, not an error. Your memory works offline and
169
+ whatever you saved goes out on the next sync.
170
+
171
+ **What never leaves your machine**
172
+
173
+ - Every project you did not explicitly share.
174
+ - Preferences β€” not shareable at all, at any setting. They are the field most
175
+ likely to hold a key.
176
+ - Credentials. `crbro_share` refuses outright if it finds one, and tells you
177
+ where. It will not redact it and send the rest.
178
+
179
+ > **Sharing cannot be undone.** Once a teammate has pulled a project it is on
180
+ > their disk. Removing their repository access stops anything new from reaching
181
+ > them; it does not take back what they already have. That is true of any
182
+ > sync system β€” worth knowing before you share, not after.
183
+
184
+ ## Architecture
185
+
186
+ ```
187
+ ~/.crbro/
188
+ β”œβ”€β”€ manifest.json ← Brain metadata
189
+ β”œβ”€β”€ cortex/ ← One JSON per neuron (topic)
190
+ β”‚ β”œβ”€β”€ project_octochat.json
191
+ β”‚ └── tech_firebase.json
192
+ β”œβ”€β”€ synapses/ ← One JSON per connection
193
+ β”‚ └── syn_octochat__firebase.json
194
+ β”œβ”€β”€ hippocampus/ ← One JSON per session
195
+ β”‚ └── session_2026-05-06.json
196
+ β”œβ”€β”€ prefrontal/ ← Working memory
197
+ β”‚ β”œβ”€β”€ active_context.json
198
+ β”‚ β”œβ”€β”€ hot_topics.json
199
+ β”‚ └── global_map.json
200
+ β”œβ”€β”€ archives/ ← Cold neurons (opt-in; nothing is archived unless you ask)
201
+ β”œβ”€β”€ shared/ ← One git repo per team space. Notes only, never the cortex
202
+ β”‚ └── team/
203
+ β”‚ └── neurons/project_x/ops/ana.a1b2c3.jsonl
204
+ └── .search/ ← Orama search index
205
+ └── chunks.index.json ← one document per fact
206
+ ```
207
+
208
+ ## Heat Score Algorithm
209
+
210
+ Each neuron has a heat score (0.0 - 1.0) calculated from:
211
+
212
+ - **Frequency (35%)** β€” How often the neuron is accessed
213
+ - **Recency (40%)** β€” When it was last accessed (today = 1.0, >3 months = 0.05)
214
+ - **Connectivity (25%)** β€” How many synapses connect to it
215
+
216
+ ## Knowledge Miner
217
+
218
+ The miner is an **optional, fully local** helper that scans a directory for `.md` and `.txt` files (notes, docs, journals) and extracts knowledge into the brain β€” so CRBRO can learn from what you already wrote, not just from conversations. It never touches the network and never leaves your machine.
219
+
220
+ ```bash
221
+ npx crbro-memory mine [dir] # One-shot scan of a directory
222
+ npx crbro-memory setup-miner # Install a scheduled auto-scan (OS task scheduler)
223
+ npx crbro-memory miner-status # Check the auto-miner status
224
+ npx crbro-memory remove-miner # Remove the scheduled task
225
+ ```
226
+
227
+ > Naming note: "miner" here means *knowledge* mining β€” extracting facts from your own text files. Nothing to do with cryptocurrency.
228
+
229
+ ## CLI Commands
230
+
231
+ ```bash
232
+ npx crbro-memory # Start MCP server (stdio)
233
+ npx crbro-memory init # Initialize brain + detect IDEs
234
+ npx crbro-memory status # Show brain status
235
+ npx crbro-memory reindex # Rebuild the search index
236
+ npx crbro-memory eval # Measure retrieval quality against your own query set
237
+ npx crbro-memory --help # Help
238
+ ```
239
+
240
+ ### Measuring retrieval
241
+
242
+ `eval` is there so you can tell a fix from a feeling. Write
243
+ `~/.crbro/.eval/queries.json` as a list of questions you would actually ask,
244
+ each naming the neuron that should answer it:
245
+
246
+ ```json
247
+ [
248
+ { "query": "how we deploy the api",
249
+ "expect_neuron": "project_octochat",
250
+ "expect_contains": "Cloud Run" }
251
+ ]
252
+ ```
253
+
254
+ Then `npx crbro-memory eval` reports how often the right neuron comes back
255
+ first, how often it makes the top three, and MRR β€” plus every miss, so you can
256
+ see what it got wrong instead of guessing.
257
+
258
+ ## License
259
+
260
+ MIT β€” see [LICENSE](LICENSE). Built by [Octonove](https://github.com/Octonove).
@@ -0,0 +1,32 @@
1
+ export type Backend = 'macos-keychain' | 'linux-secret-service' | 'windows-dpapi';
2
+ export interface SecretEntry {
3
+ name: string;
4
+ description: string;
5
+ updated: string;
6
+ }
7
+ export declare class KeychainUnavailable extends Error {
8
+ readonly reason: string;
9
+ constructor(reason: string);
10
+ }
11
+ /**
12
+ * Which store this machine can actually use β€” not which one it should have.
13
+ * Returns null with a reason the caller can show the user, because "no
14
+ * keychain here" is a normal answer on a headless box, not a failure.
15
+ */
16
+ export declare function detectBackend(): {
17
+ backend: Backend | null;
18
+ reason?: string;
19
+ };
20
+ export declare function setSecret(name: string, value: string, description?: string): void;
21
+ /**
22
+ * The value, or null when there is no such secret. An environment variable of
23
+ * the same name wins, which is what makes CI and one-off overrides work
24
+ * without touching the store.
25
+ */
26
+ export declare function getSecret(name: string): string | null;
27
+ /** Names and descriptions only. Values are never returned by design. */
28
+ export declare function listSecrets(): SecretEntry[];
29
+ export declare function removeSecret(name: string): boolean;
30
+ /** Windows only, and only for tests: forget the sealed file entirely. */
31
+ export declare function _resetWindowsStoreForTests(): void;
32
+ //# sourceMappingURL=keychain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/engine/keychain.ts"],"names":[],"mappings":"AA8CA,MAAM,MAAM,OAAO,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,eAAe,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAChB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI3C;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAgC5E;AAmID,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,IAAI,CAkC7E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkCrD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAmB3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAsBlD;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ // ─── CRBRO Keychain Broker ───────────────────────────────────────
3
+ //
4
+ // The secret filter says no. It refuses to write a credential into the brain,
5
+ // which is right β€” but it leaves the user holding a password and nowhere to
6
+ // put it, so it goes back into a config file in plain text and nothing was
7
+ // gained. This module is the other half of that sentence: "no, not in memory β€”
8
+ // I put it in your keychain and remembered the name."
9
+ //
10
+ // CRBRO stores nothing itself and invents no crypto. Every platform already
11
+ // ships a credential store that is better reviewed than anything written here
12
+ // could be, so the job is to broker access to it and stay out of the way:
13
+ //
14
+ // macOS security(1), the login keychain
15
+ // Linux secret-tool(1), the Secret Service the desktop already runs
16
+ // Windows DPAPI through PowerShell, sealed to the user account
17
+ //
18
+ // Windows is the odd one. Its Credential Manager has no supported way to read
19
+ // a secret back from the command line β€” cmdkey writes but will not return the
20
+ // value, and reading needs P/Invoke into CredRead. So there the secret is
21
+ // sealed with DPAPI, which is the same crypto the Credential Manager uses,
22
+ // into a file only that Windows account can open. Copied to another machine,
23
+ // lifted from a backup or pushed to a repository, it is unreadable.
24
+ //
25
+ // The store lives OUTSIDE the brain on purpose. Nothing under ~/.crbro is ever
26
+ // consulted here, so no sync, no team space and no `crbro_share` can reach a
27
+ // secret even if some future bug tried to.
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.KeychainUnavailable = void 0;
30
+ exports.detectBackend = detectBackend;
31
+ exports.setSecret = setSecret;
32
+ exports.getSecret = getSecret;
33
+ exports.listSecrets = listSecrets;
34
+ exports.removeSecret = removeSecret;
35
+ exports._resetWindowsStoreForTests = _resetWindowsStoreForTests;
36
+ const node_child_process_1 = require("node:child_process");
37
+ const node_os_1 = require("node:os");
38
+ const node_path_1 = require("node:path");
39
+ const node_fs_1 = require("node:fs");
40
+ /** Namespace under which every CRBRO secret is filed in the OS store. */
41
+ const SERVICE = 'crbro';
42
+ /**
43
+ * Windows only: the sealed file, deliberately a sibling of the brain, never
44
+ * inside it. CRBRO_KEYS_DIR redirects it, which is how the tests avoid writing
45
+ * into the real store β€” a test suite that can only run by touching the user's
46
+ * own credentials is a test suite nobody runs twice.
47
+ */
48
+ function winPaths() {
49
+ const dir = process.env['CRBRO_KEYS_DIR'] || (0, node_path_1.join)((0, node_os_1.homedir)(), '.crbro-keys');
50
+ return { dir, file: (0, node_path_1.join)(dir, 'keys.dpapi') };
51
+ }
52
+ class KeychainUnavailable extends Error {
53
+ reason;
54
+ constructor(reason) {
55
+ super(reason);
56
+ this.reason = reason;
57
+ this.name = 'KeychainUnavailable';
58
+ }
59
+ }
60
+ exports.KeychainUnavailable = KeychainUnavailable;
61
+ /** Runs a command without a shell, so a value with spaces or quotes cannot be reinterpreted. */
62
+ function run(cmd, args, input) {
63
+ return (0, node_child_process_1.spawnSync)(cmd, args, {
64
+ encoding: 'utf8',
65
+ input,
66
+ timeout: 30_000,
67
+ windowsHide: true,
68
+ });
69
+ }
70
+ /**
71
+ * Which store this machine can actually use β€” not which one it should have.
72
+ * Returns null with a reason the caller can show the user, because "no
73
+ * keychain here" is a normal answer on a headless box, not a failure.
74
+ */
75
+ function detectBackend() {
76
+ const os = (0, node_os_1.platform)();
77
+ if (os === 'darwin') {
78
+ const probe = run('security', ['-h']);
79
+ if (probe.error)
80
+ return { backend: null, reason: 'security(1) not found β€” unexpected on macOS.' };
81
+ return { backend: 'macos-keychain' };
82
+ }
83
+ if (os === 'win32') {
84
+ const probe = run('powershell.exe', ['-NoProfile', '-Command', '$PSVersionTable.PSVersion.Major']);
85
+ if (probe.error || probe.status !== 0) {
86
+ return { backend: null, reason: 'PowerShell not available, so DPAPI cannot be reached.' };
87
+ }
88
+ return { backend: 'windows-dpapi' };
89
+ }
90
+ // Linux and the BSDs. secret-tool needs a running Secret Service over D-Bus;
91
+ // over SSH with no desktop session there is usually none, and that is worth
92
+ // saying plainly rather than failing with a D-Bus error.
93
+ const probe = run('secret-tool', ['--help']);
94
+ if (probe.error) {
95
+ return { backend: null, reason: 'secret-tool not installed. On Debian/Ubuntu: apt install libsecret-tools.' };
96
+ }
97
+ if (!process.env['DBUS_SESSION_BUS_ADDRESS']) {
98
+ return {
99
+ backend: null,
100
+ reason: 'secret-tool is installed but no D-Bus session is running, which is normal over SSH. ' +
101
+ 'Start a session bus or use the CRBRO_SECRET_* environment variables instead.',
102
+ };
103
+ }
104
+ return { backend: 'linux-secret-service' };
105
+ }
106
+ function requireBackend() {
107
+ const { backend, reason } = detectBackend();
108
+ if (!backend)
109
+ throw new KeychainUnavailable(reason ?? 'No credential store available on this machine.');
110
+ return backend;
111
+ }
112
+ // Every DPAPI call costs a PowerShell start, about a second. A script that
113
+ // needs four credentials would pay four seconds for no reason, so a read is
114
+ // held briefly in memory.
115
+ //
116
+ // Briefly is the whole point. The MCP server is long-lived, and a cache with
117
+ // no expiry would keep every secret in the heap for as long as the editor is
118
+ // open. Thirty seconds covers the burst of reads at the start of a task and
119
+ // nothing beyond it.
120
+ const CACHE_TTL_MS = 30_000;
121
+ let cached = null;
122
+ function invalidateCache() {
123
+ cached = null;
124
+ }
125
+ function psDpapi(script, input) {
126
+ const r = run('powershell.exe', ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-Command', script], input);
127
+ if (r.error || r.status !== 0) {
128
+ throw new KeychainUnavailable(`DPAPI call failed: ${(r.stderr || '').trim() || 'unknown error'}`);
129
+ }
130
+ return r.stdout;
131
+ }
132
+ function winRead() {
133
+ const { file } = winPaths();
134
+ if (cached && cached.file === file && Date.now() - cached.at < CACHE_TTL_MS) {
135
+ return cached.store;
136
+ }
137
+ if (!(0, node_fs_1.existsSync)(file))
138
+ return {};
139
+ const sealed = (0, node_fs_1.readFileSync)(file, 'utf8').trim();
140
+ if (!sealed)
141
+ return {};
142
+ // ConvertTo-SecureString without -Key is DPAPI at CurrentUser scope: only
143
+ // this Windows account, on this machine, can turn it back into text.
144
+ const json = psDpapi('$e = [Console]::In.ReadToEnd().Trim();' +
145
+ '$s = ConvertTo-SecureString $e;' +
146
+ '$b = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($s);' +
147
+ 'try { [Runtime.InteropServices.Marshal]::PtrToStringAuto($b) }' +
148
+ 'finally { [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($b) }', sealed);
149
+ try {
150
+ const store = JSON.parse(json);
151
+ cached = { store, at: Date.now(), file };
152
+ return store;
153
+ }
154
+ catch {
155
+ throw new KeychainUnavailable('The key store exists but could not be read. It was sealed by a different Windows account.');
156
+ }
157
+ }
158
+ function winWrite(store) {
159
+ const { dir, file } = winPaths();
160
+ if (!(0, node_fs_1.existsSync)(dir))
161
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
162
+ const sealed = psDpapi('$j = [Console]::In.ReadToEnd();' +
163
+ 'ConvertTo-SecureString $j -AsPlainText -Force | ConvertFrom-SecureString', JSON.stringify(store)).trim();
164
+ // Atomic: a crash mid-write leaves the previous store intact rather than a
165
+ // truncated file that would take every secret with it.
166
+ const tmp = `${file}.tmp`;
167
+ (0, node_fs_1.writeFileSync)(tmp, sealed, { encoding: 'ascii', mode: 0o600 });
168
+ (0, node_fs_1.renameSync)(tmp, file);
169
+ cached = { store, at: Date.now(), file };
170
+ }
171
+ // ─── macOS: an index of its own ──────────────────────────────────
172
+ //
173
+ // There is no clean way to list the items of one service. dump-keychain asks
174
+ // for authorisation once per item, and find-generic-password -g returns a
175
+ // single match and prints the password to stderr behind a "password: " prefix
176
+ // β€” reading that back just to enumerate names would mean handling secrets
177
+ // for no reason. So the names live in an item of their own: one extra write
178
+ // per change, and a listing that tells the truth.
179
+ // security(1) prints the whole value as hex pairs if a single byte of it is
180
+ // not printable, and a UTF-8 accent is two bytes above 0x7F β€” so "contraseΓ±a"
181
+ // comes back as "636f6e747261736ec3b161". Worse, it is ambiguous: the literal
182
+ // secret "deadbeef" is returned exactly like the hex of the bytes DE AD BE EF,
183
+ // and nothing in the output says which one it was.
184
+ //
185
+ // Base64 is printable ASCII from end to end, so the hex path is never taken
186
+ // and any byte sequence survives the round trip unchanged.
187
+ function macEncode(value) {
188
+ return Buffer.from(value, 'utf8').toString('base64');
189
+ }
190
+ function macDecode(raw) {
191
+ // -w always ends with a newline of its own (putchar), and only that one is
192
+ // removed: .trim() would eat spaces that belong to the secret.
193
+ return Buffer.from(raw.replace(/\n$/, ''), 'base64').toString('utf8');
194
+ }
195
+ const MAC_INDEX = '__crbro_index__';
196
+ function macReadIndex() {
197
+ const r = run('security', ['find-generic-password', '-s', SERVICE, '-a', MAC_INDEX, '-w']);
198
+ if (r.status !== 0)
199
+ return {};
200
+ try {
201
+ return JSON.parse(macDecode(r.stdout));
202
+ }
203
+ catch {
204
+ return {};
205
+ }
206
+ }
207
+ function macWriteIndex(index) {
208
+ run('security', ['add-generic-password', '-U', '-s', SERVICE, '-a', MAC_INDEX, '-w', macEncode(JSON.stringify(index)), '-T', '/usr/bin/security']);
209
+ }
210
+ // ─── Public surface ──────────────────────────────────────────────
211
+ function setSecret(name, value, description = '') {
212
+ const backend = requireBackend();
213
+ if (!/^[A-Z][A-Z0-9_]*$/.test(name)) {
214
+ throw new Error(`Invalid secret name "${name}". Use SCREAMING_SNAKE_CASE, e.g. WORDPRESS_APP_PASSWORD.`);
215
+ }
216
+ if (!value)
217
+ throw new Error('Refusing to store an empty value.');
218
+ if (backend === 'windows-dpapi') {
219
+ const store = winRead();
220
+ store[name] = { value, description, updated: new Date().toISOString().slice(0, 10) };
221
+ winWrite(store);
222
+ return;
223
+ }
224
+ if (backend === 'macos-keychain') {
225
+ // -U updates in place instead of erroring when the item already exists.
226
+ // -w with the value on argv is visible to `ps` for the life of the call;
227
+ // security(1) offers no stdin form, so the exposure is unavoidable and
228
+ // measured in milliseconds on the user's own machine.
229
+ const r = run('security', ['add-generic-password', '-U', '-s', SERVICE, '-a', name, '-w', macEncode(value), '-j', description, '-T', '/usr/bin/security']);
230
+ if (r.status !== 0)
231
+ throw new KeychainUnavailable(`Keychain refused the write: ${(r.stderr || '').trim()}`);
232
+ const index = macReadIndex();
233
+ index[name] = { description, updated: new Date().toISOString().slice(0, 10) };
234
+ macWriteIndex(index);
235
+ return;
236
+ }
237
+ // secret-tool reads the secret from stdin, so it never reaches the process
238
+ // table. It stays open waiting for EOF, which spawnSync gives it.
239
+ const r = run('secret-tool', ['store', '--label', `CRBRO ${name}`, 'service', SERVICE, 'account', name, 'description', description], value);
240
+ if (r.status !== 0)
241
+ throw new KeychainUnavailable(`secret-tool refused the write: ${(r.stderr || '').trim()}`);
242
+ }
243
+ /**
244
+ * The value, or null when there is no such secret. An environment variable of
245
+ * the same name wins, which is what makes CI and one-off overrides work
246
+ * without touching the store.
247
+ */
248
+ function getSecret(name) {
249
+ const fromEnv = process.env[name];
250
+ if (fromEnv)
251
+ return fromEnv;
252
+ const backend = requireBackend();
253
+ if (backend === 'windows-dpapi') {
254
+ return winRead()[name]?.value ?? null;
255
+ }
256
+ if (backend === 'macos-keychain') {
257
+ const r = run('security', ['find-generic-password', '-s', SERVICE, '-a', name, '-w']);
258
+ // security(1) returns the OSStatus itself, truncated to eight bits: 44 is
259
+ // errSecItemNotFound, 36 is errSecInteractionNotAllowed β€” a locked
260
+ // keychain, which is the normal state over SSH and in CI. Reporting that
261
+ // one as "no such secret" would send someone hunting for a typo.
262
+ if (r.status === 36) {
263
+ throw new KeychainUnavailable('The macOS keychain is locked, which is usual over SSH or in CI. Unlock it in a desktop session, ' +
264
+ 'or pass the credential as an environment variable instead.');
265
+ }
266
+ if (r.status !== 0)
267
+ return null;
268
+ return macDecode(r.stdout);
269
+ }
270
+ // Unlike security(1), secret-tool adds no trailing newline when stdout
271
+ // is a pipe: write_password_stdout only appends one for a tty. Trimming
272
+ // here would silently eat a newline that was genuinely part of the secret.
273
+ // Exit 1 with nothing on stderr is how it reports "no such item"; anything
274
+ // on stderr is a real failure and must not be mistaken for absence.
275
+ const r = run('secret-tool', ['lookup', 'service', SERVICE, 'account', name]);
276
+ if (r.status === 0)
277
+ return r.stdout;
278
+ if (r.status === 1 && !(r.stderr || '').trim())
279
+ return null;
280
+ throw new KeychainUnavailable(`secret-tool failed: ${(r.stderr || '').trim() || `exit ${r.status}`}`);
281
+ }
282
+ /** Names and descriptions only. Values are never returned by design. */
283
+ function listSecrets() {
284
+ const backend = requireBackend();
285
+ if (backend === 'windows-dpapi') {
286
+ return Object.entries(winRead())
287
+ .map(([name, e]) => ({ name, description: e.description, updated: e.updated }))
288
+ .sort((a, b) => a.name.localeCompare(b.name));
289
+ }
290
+ if (backend === 'macos-keychain') {
291
+ return Object.entries(macReadIndex())
292
+ .map(([name, e]) => ({ name, description: e.description, updated: e.updated }))
293
+ .sort((a, b) => a.name.localeCompare(b.name));
294
+ }
295
+ const r = run('secret-tool', ['search', '--all', 'service', SERVICE]);
296
+ if (r.status !== 0)
297
+ return [];
298
+ const names = [...r.stdout.matchAll(/^attribute\.account = (.+)$/gm)].map(m => m[1].trim());
299
+ return [...new Set(names)].sort().map(name => ({ name, description: '', updated: '' }));
300
+ }
301
+ function removeSecret(name) {
302
+ const backend = requireBackend();
303
+ if (backend === 'windows-dpapi') {
304
+ const store = winRead();
305
+ if (!(name in store))
306
+ return false;
307
+ delete store[name];
308
+ winWrite(store);
309
+ return true;
310
+ }
311
+ if (backend === 'macos-keychain') {
312
+ const gone = run('security', ['delete-generic-password', '-s', SERVICE, '-a', name]).status === 0;
313
+ if (gone) {
314
+ const index = macReadIndex();
315
+ delete index[name];
316
+ macWriteIndex(index);
317
+ }
318
+ return gone;
319
+ }
320
+ return run('secret-tool', ['clear', 'service', SERVICE, 'account', name]).status === 0;
321
+ }
322
+ /** Windows only, and only for tests: forget the sealed file entirely. */
323
+ function _resetWindowsStoreForTests() {
324
+ invalidateCache();
325
+ const { file } = winPaths();
326
+ if ((0, node_fs_1.existsSync)(file))
327
+ (0, node_fs_1.unlinkSync)(file);
328
+ }
329
+ //# sourceMappingURL=keychain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/engine/keychain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,wBAAgB,YAAY,IAAI,SAAS,CAqgCxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,wBAAgB,YAAY,IAAI,SAAS,CAimCxC"}
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  // ─── CRBRO MCP Server ────────────────────────────────────────────
3
- // Main server with all 15 tools registered
3
+ // Main server with all 22 tools registered
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.createServer = createServer;
6
6
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
@@ -14,10 +14,11 @@ const prefrontal_js_1 = require("./engine/prefrontal.js");
14
14
  const index_js_1 = require("./search/index.js");
15
15
  const maintenance_js_1 = require("./engine/maintenance.js");
16
16
  const space_js_1 = require("./sync/space.js");
17
+ const keychain_js_1 = require("./engine/keychain.js");
17
18
  function createServer() {
18
19
  const server = new mcp_js_1.McpServer({
19
20
  name: 'crbro-memory',
20
- version: '1.7.0',
21
+ version: '1.8.0',
21
22
  });
22
23
  // ─── Initialize engines ──────────────────────────────────────
23
24
  const brain = new brain_js_1.Brain();
@@ -37,9 +38,9 @@ function createServer() {
37
38
  // to this machine's own log. Nobody ever writes to anyone else's file, so
38
39
  // two people working at once have nothing to collide over.
39
40
  (0, space_js_1.attachSync)(brain, cortex);
40
- // v1.4.0: CRBRO is fully free β€” all 15 tools, no license, no network calls.
41
- // The former license engine (Firestore-backed freemium) lives in git history
42
- // before this version if it is ever needed again.
41
+ // v1.4.0: CRBRO is fully free β€” no license, no network calls. The former
42
+ // license engine (Firestore-backed freemium) lives in git history before
43
+ // that version if it is ever needed again.
43
44
  // ═══════════════════════════════════════════════════════════════
44
45
  // TOOL 1: crbro_boot β€” Boot sequence
45
46
  // ═══════════════════════════════════════════════════════════════
@@ -175,7 +176,8 @@ function createServer() {
175
176
  redaction_note: result.redacted.length > 0
176
177
  ? `Stored, but ${result.redacted.length} credential(s) were replaced with a marker: ` +
177
178
  `${result.redacted.join(', ')}. The sentence around them was kept. ` +
178
- 'Tell the user, and do not try to store the value again.'
179
+ 'Do not try to store the value again. Offer the user crbro_secret instead: ' +
180
+ 'it puts the credential in the OS keychain, and then you record only its name here.'
179
181
  : undefined,
180
182
  total_facts: result.neuron.facts.length,
181
183
  total_decisions: result.neuron.decisions.length,
@@ -701,6 +703,90 @@ function createServer() {
701
703
  }
702
704
  });
703
705
  // ═══════════════════════════════════════════════════════════════
706
+ // TOOL 22: crbro_secret β€” Credentials, brokered to the OS keychain
707
+ // ═══════════════════════════════════════════════════════════════
708
+ server.tool('crbro_secret', 'Store and read credentials in the operating system own keychain β€” macOS Keychain, the Linux Secret Service, or DPAPI on Windows. CRBRO keeps no copy and invents no crypto: it brokers access to the store the machine already has, outside the brain, where no sync and no team space can reach it. Use it the moment the user hands you a credential: store it here, then record only the NAME with crbro_learn, never the value. Use get when a task needs one, and do not print the value back to the user unless they asked for that specific secret. Names are SCREAMING_SNAKE_CASE, e.g. WORDPRESS_APP_PASSWORD.', {
709
+ action: zod_1.z.enum(['get', 'set', 'list', 'remove', 'status'])
710
+ .describe('get = read one, set = store or update one, list = names only, remove = delete one, status = which keychain this machine offers'),
711
+ name: zod_1.z.string().optional().describe('Secret name in SCREAMING_SNAKE_CASE'),
712
+ value: zod_1.z.string().optional().describe('The credential itself. Only for set.'),
713
+ description: zod_1.z.string().optional().describe('What it is for, e.g. "WordPress example.com - REST API"'),
714
+ }, async (args) => {
715
+ try {
716
+ let payload;
717
+ if (args.action === 'status') {
718
+ const { backend, reason } = (0, keychain_js_1.detectBackend)();
719
+ payload = {
720
+ backend,
721
+ available: backend !== null,
722
+ message: backend
723
+ ? `Credentials on this machine are stored in: ${backend}.`
724
+ : `No credential store available here. ${reason ?? ''} Credentials can still be passed as environment variables.`,
725
+ };
726
+ }
727
+ else if (args.action === 'list') {
728
+ const entries = (0, keychain_js_1.listSecrets)();
729
+ payload = {
730
+ count: entries.length,
731
+ secrets: entries,
732
+ note: 'Names only. Values are never listed, by design.',
733
+ };
734
+ }
735
+ else if (!args.name) {
736
+ throw new Error(`"name" is required for action "${args.action}".`);
737
+ }
738
+ else if (args.action === 'set') {
739
+ if (!args.value)
740
+ throw new Error('"value" is required for action "set".');
741
+ (0, keychain_js_1.setSecret)(args.name, args.value, args.description ?? '');
742
+ payload = {
743
+ stored: args.name,
744
+ message: `Stored in the OS keychain as ${args.name}. Now record the NAME in the brain with crbro_learn β€” never the value β€” so a later session knows where to look.`,
745
+ };
746
+ }
747
+ else if (args.action === 'remove') {
748
+ const gone = (0, keychain_js_1.removeSecret)(args.name);
749
+ payload = {
750
+ removed: gone,
751
+ message: gone
752
+ ? `${args.name} deleted from the keychain.`
753
+ : `No secret named ${args.name} was found.`,
754
+ };
755
+ }
756
+ else {
757
+ const value = (0, keychain_js_1.getSecret)(args.name);
758
+ payload = value === null
759
+ ? {
760
+ found: false,
761
+ message: `No secret named ${args.name}. Run action "list" to see what is stored, or ask the user for it and store it with action "set".`,
762
+ }
763
+ : {
764
+ found: true,
765
+ name: args.name,
766
+ value,
767
+ note: 'Use it for the task at hand. Do not repeat it back to the user and do not write it into any file.',
768
+ };
769
+ }
770
+ return {
771
+ content: [{
772
+ type: 'text',
773
+ text: JSON.stringify(payload, null, 2),
774
+ }],
775
+ };
776
+ }
777
+ catch (err) {
778
+ return {
779
+ content: [{
780
+ type: 'text',
781
+ text: err instanceof keychain_js_1.KeychainUnavailable
782
+ ? `No credential store available: ${err.message}`
783
+ : `CRBRO secret error: ${err instanceof Error ? err.message : String(err)}`,
784
+ }],
785
+ isError: true,
786
+ };
787
+ }
788
+ });
789
+ // ═══════════════════════════════════════════════════════════════
704
790
  // TOOL 18: crbro_forget β€” Remove knowledge for good
705
791
  // ═══════════════════════════════════════════════════════════════
706
792
  server.tool('crbro_forget', 'Permanently remove facts from a neuron. This is for things that must not exist at all β€” a credential, personal data, something stored by mistake. For knowledge that merely stopped being true, use crbro_revise instead, which keeps the history. The whole neuron is copied to .quarantine/ before anything is removed, so a mistake can be undone by hand. Always tell the user what you are about to remove and get their agreement first.', {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,2CAA2C;;AAkB3C,oCAqgCC;AArhCD,oEAAoE;AACpE,6BAAwB;AAExB,gDAA0C;AAC1C,kDAA4C;AAC5C,sDAAgD;AAChD,8CAA8C;AAC9C,4DAAsD;AACtD,0DAAoD;AACpD,gDAAiD;AACjD,4DAAsD;AACtD,8CAGyB;AAEzB,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;QAC3B,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,KAAK,GAAG,IAAI,gBAAK,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,sBAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,4BAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,4BAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAEhH,4EAA4E;IAC5E,8EAA8E;IAC9E,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,2EAA2E;IAC3E,0EAA0E;IAC1E,2DAA2D;IAC3D,IAAA,qBAAU,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE1B,4EAA4E;IAC5E,6EAA6E;IAC7E,kDAAkD;IAElD,kEAAkE;IAClE,qCAAqC;IACrC,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,6fAA6f,EAC7f,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,2BAA2B;YAC3B,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAE1B,sEAAsE;YACtE,oEAAoE;YACpE,0DAA0D;YAC1D,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEpD,MAAM,QAAQ,GAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;YAEpC,+BAA+B;YAC/B,yEAAyE;YACzE,sEAAsE;YACtE,uEAAuE;YACvE,sBAAsB;YACtB,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClE,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAC3D,SAAS,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,YAAY,EAAE,CACjE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAEtC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACnE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;iBAC/D,CAAC,CAAC,CAAC;gBAEJ,QAAQ,CAAC,oBAAoB;oBAC3B,kEAAkE;wBAClE,gDAAgD,GAAG,aAAa,CAAC;YACrE,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,CAAC,gBAAgB;oBACvB,qFAAqF;wBACrF,0FAA0F;wBAC1F,yEAAyE,CAAC;YAC9E,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM;oBACzC,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC,CAAC;YACN,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAC9E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,sCAAsC;IACtC,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,gGAAgG,EAChG,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;4BACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;4BACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;4BACvC,cAAc,EAAE,QAAQ,CAAC,cAAc;4BACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;4BAC7B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;yBAChD,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAChF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,mDAAmD;IACnD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,yXAAyX,EACzX;QACE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC3F,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClG,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACjE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAClG,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QACpG,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8LAA8L,CAAC;QACzO,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sHAAsH,CAAC;KAC5K,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBAChF,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;YACH,kEAAkE;YAElE,iEAAiE;YACjE,wEAAwE;YACxE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,sBAAsB,IAAI,CAAC,KAAK,yBAAyB;yBAChE,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;4BAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,gBAAgB,EAAE,MAAM,CAAC,UAAU;4BACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;4BAClE,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gCACxC,CAAC,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,8CAA8C;oCACnF,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC;oCACpE,yDAAyD;gCAC3D,CAAC,CAAC,SAAS;4BACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;4BACvC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;4BAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;4BAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS;gCAClC,CAAC,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,IAAI,gBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gCACzE,CAAC,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ;oCAC7D,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;yBACrF,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAC/E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,gDAAgD;IAChD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,4NAA4N,EAC5N;QACE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QAC1F,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACvF,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACxF,kBAAkB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;KACpH,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,CAAQ,gCAAgC;YAC3C,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,MAAM,EAAE,CAAC;oBACX,yBAAyB;oBACzB,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,sBAAsB,IAAI,CAAC,EAAE,iDAAiD;yBACrF,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,sEAAsE;YACtE,wEAAwE;YACxE,qCAAqC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CACzF,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAC3D,CAAC;YACF,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,GAAG,MAAM;4BACT,KAAK,EAAE,IAAI;4BACX,gBAAgB,EAAE;gCAChB,KAAK,EAAE,OAAO,CAAC,MAAM;gCACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;gCACrB,MAAM;gCACN,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;gCAC/C,KAAK,EAAE,cAAc;gCACrB,iBAAiB,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;6BAChE;yBACF,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAChF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,uCAAuC;IACvC,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,uGAAuG,EACvG;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAClF,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjI,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACxE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAClE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,OAAO,CAAC,MAAM;4BACrB,OAAO;yBACR,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACjF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,0CAA0C;IAC1C,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,0bAA0b,EAC1b;QACE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QACxF,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAClE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC/D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,aAAa,EAAE,OAAO,CAAC,MAAM;4BAC7B,OAAO;4BACP,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;gCACxB,CAAC,CAAC,2GAA2G;gCAC7G,CAAC,CAAC,0HAA0H;yBAC/H,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAChF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,sDAAsD;IACtD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,uIAAuI,EACvI;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC3C,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACxH,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC3E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9F,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;4BAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;4BACjC,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS;gCAClC,CAAC,CAAC,gBAAgB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gCACzD,CAAC,CAAC,yBAAyB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,eAAe,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;yBAC5F,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACjF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,qDAAqD;IACrD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,+GAA+G,EAC/G;QACE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAClE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACnF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhG,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,iBAAiB,EAAE,WAAW,CAAC,MAAM;4BACrC,WAAW;yBACZ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACrF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,4CAA4C;IAC5C,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,sGAAsG,EACtG;QACE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACxE,cAAc,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACrF,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC7E,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KAC/E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;YAEH,0CAA0C;YAC1C,MAAM,UAAU,CAAC,aAAa,CAAC;gBAC7B,UAAU,EAAE,IAAI,CAAC,cAAc;aAChC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,OAAO,EAAE,gCAAgC;yBAC1C,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACrF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,iDAAiD;IACjD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,gDAAgD,EAChD;QACE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KACnF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,QAAQ,CAAC,MAAM;4BACtB,QAAQ;yBACT,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAClF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,0CAA0C;IAC1C,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,oOAAoO,EACpO;QACE,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACrF,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;QAC9H,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kHAAkH,CAAC;KACpK,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC;gBACpD,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;qBACnC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACjF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,yCAAyC;IACzC,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,gHAAgH,EAChH;QACE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACjF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;qBACzC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACpF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,gDAAgD;IAChD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,sFAAsF,EACtF;QACE,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KACxF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM;4BACzC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;4BACvC,YAAY,EAAE,SAAS,CAAC,YAAY;4BACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;yBAC3B,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACpF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,+CAA+C;IAC/C,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,sPAAsP,EACtP;QACE,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACjG,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wKAAwK,CAAC;QAClN,iBAAiB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qJAAqJ,CAAC;KAC1M,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAExH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;4BAC3C,GAAG,MAAM;yBACV,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACrF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,4DAA4D;IAC5D,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,udAAud,EACvd;QACE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KAC1E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YAAQ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,oEAAoE;YACpE,0DAA0D;YAC1D,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAC3B,iEAAiE;YACjE,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAO,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAEzD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,GAAG,MAAM;4BACT,aAAa,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC;gCACnC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gCAC9E,CAAC,CAAC,SAAS;4BACb,OAAO,EAAE,8CAA8C;yBACxD,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACrF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,mEAAmE;IACnE,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,qWAAqW,EACrW;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC5F,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QAC7F,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;QACpJ,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;KAC/G,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC1D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,sBAAsB,IAAI,CAAC,MAAM,wDAAwD;yBAChG,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;4BAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,YAAY;4BACnC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;gCACzB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,wBAAwB,MAAM,CAAC,MAAM,CAAC,IAAI,qCAAqC;gCAClG,CAAC,CAAC,yEAAyE;yBAC9E,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAChF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,yDAAyD;IACzD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wUAAwU,EACxU,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAEvE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,gBAAgB,EAAE,SAAS,CAAC,MAAM;4BAClC,cAAc,EAAE,KAAK;4BACrB,QAAQ,EAAE,SAAS;4BACnB,OAAO,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;gCAC7B,CAAC,CAAC,oCAAoC;gCACtC,CAAC,CAAC,GAAG,KAAK,mBAAmB,SAAS,CAAC,MAAM,6DAA6D;oCACxG,oEAAoE;oCACpE,2FAA2F;4BAC/F,IAAI,EAAE,yCAAyC;yBAChD,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAC/E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,oDAAoD;IACpD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,gbAAgb,EAChb;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACpE,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wFAAwF,CAAC;KAC9H,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvD,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,sBAAsB,IAAI,CAAC,MAAM,2DAA2D;yBACnG,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC;gCACpB,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,0BAA0B,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,MAAM,IAAI;oCACxG,kFAAkF;gCACpF,CAAC,CAAC,yEAAyE;yBAC9E,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBAChF,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,qDAAqD;IACrD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,4UAA4U,EAC5U;QACE,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,2FAA2F,CAAC;QAClJ,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;QAC7G,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kFAAkF,CAAC;QAC1H,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QACtG,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KACzE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC;gBACpC,MAAM,OAAO,GAAG,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAS,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACtC,IAAI,GAAG;wBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5F,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,EAAE,CAAC,MAAM;gCAClB,MAAM,EAAE,EAAE,CAAC,MAAM;gCACjB,MAAM,EAAE,OAAO;gCACf,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;oCAC3B,CAAC,CAAC,yGAAyG;oCAC3G,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,gEAAgE;6BACzF,EAAE,IAAI,EAAE,CAAC,CAAC;yBACZ,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wDAAwD,EAAE,CAAC;iBACrG,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gEAAgE,EAAE,CAAC;iBAC7G,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAChC,CAAC,CAAC,MAAM,IAAA,sBAAW,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;gBACtF,CAAC,CAAC,MAAM,IAAA,oBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;YAEvF,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gCACpC,CAAC,CAAC,4FAA4F;gCAC9F,CAAC,CAAC,CAAC,CAAC,EAAE;oCACN,CAAC,CAAC,yDAAyD;oCAC3D,CAAC,CAAC,SAAS;yBACd,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACpH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,sDAAsD;IACtD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,4YAA4Y,EAC5Y;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC/C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;KACvG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAY,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpE,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,GAAG,IAAI;gCACP,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oCAC9B,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,yDAAyD;wCACxF,gEAAgE;oCAClE,CAAC,CAAC,kBAAkB,IAAI,CAAC,WAAW,aAAa,IAAI,CAAC,mBAAmB,oCAAoC;wCAC3G,yHAAyH;6BAC9H,EAAE,IAAI,EAAE,CAAC,CAAC;yBACZ,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,GAAG,MAAM,IAAA,sBAAW,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClF,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,GAAG,CAAC;4BACJ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0EAA0E,CAAC,CAAC,CAAC,SAAS;yBACpG,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACpH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,yDAAyD;IACzD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,oQAAoQ,EACpQ;QACE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KAChF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;gBACzB,CAAC,CAAC,CAAC,MAAM,IAAA,uBAAY,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACzD,CAAC,CAAC,MAAM,IAAA,kBAAO,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6EAA6E,EAAE,CAAC;iBAC1H,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACzB,KAAK,EAAE,CAAC,CAAC,KAAK;gCACd,KAAK,EAAE,CAAC,CAAC,KAAK;gCACd,eAAe,EAAE,CAAC,CAAC,eAAe;gCAClC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gCAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;gCAC9D,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC9D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;gCAC/C,MAAM,EAAE,CAAC,CAAC,MAAM;gCAChB,OAAO,EAAE,CAAC,CAAC,OAAO;6BACnB,CAAC,CAAC;yBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACnH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crbro-memory",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "mcpName": "io.github.Octonove/crbro-memory",
5
5
  "description": "CRBRO β€” Persistent neural memory for AI. A biological file-based MCP server that gives your AI long-term memory across sessions.",
6
6
  "main": "dist/index.js",