helixmind 0.2.17 → 0.2.18
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 +102 -100
- package/dist/cli/feed/pipeline.d.ts +1 -0
- package/dist/cli/feed/pipeline.d.ts.map +1 -1
- package/dist/cli/feed/pipeline.js +10 -2
- package/dist/cli/feed/pipeline.js.map +1 -1
- package/dist/cli/ui/progress.d.ts +1 -0
- package/dist/cli/ui/progress.d.ts.map +1 -1
- package/dist/cli/ui/progress.js +2 -1
- package/dist/cli/ui/progress.js.map +1 -1
- package/dist/spiral/engine.d.ts +2 -0
- package/dist/spiral/engine.d.ts.map +1 -1
- package/dist/spiral/engine.js +46 -2
- package/dist/spiral/engine.js.map +1 -1
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +20 -3
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/nodes.d.ts +12 -1
- package/dist/storage/nodes.d.ts.map +1 -1
- package/dist/storage/nodes.js +22 -3
- package/dist/storage/nodes.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# HelixMind
|
|
4
4
|
|
|
5
5
|
**AI Coding Assistant with Persistent Spiral Memory**
|
|
6
6
|
|
|
@@ -11,25 +11,25 @@
|
|
|
11
11
|
|
|
12
12
|
*Remembers context across sessions. Learns from every interaction. Full SaaS platform with CLI + Web Dashboard.*
|
|
13
13
|
|
|
14
|
-
[Installation](
|
|
14
|
+
[Installation](#installation) • [Features](#features) • [Quick Start](#quick-start) • [Web Platform](#web-platform) • [Documentation](#documentation)
|
|
15
15
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Features
|
|
21
21
|
|
|
22
22
|
<table>
|
|
23
23
|
<tr>
|
|
24
24
|
<td width="50%">
|
|
25
25
|
|
|
26
|
-
###
|
|
26
|
+
### Spiral Memory
|
|
27
27
|
**5-level hierarchical memory** that persists across sessions. Context flows between levels based on relevance and recency.
|
|
28
28
|
|
|
29
29
|
</td>
|
|
30
30
|
<td width="50%">
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### Multi-Provider
|
|
33
33
|
**Claude, GPT-4, Ollama** and more. Switch seamlessly between AI providers with rate limiting and model limits.
|
|
34
34
|
|
|
35
35
|
</td>
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
<tr>
|
|
38
38
|
<td width="50%">
|
|
39
39
|
|
|
40
|
-
###
|
|
41
|
-
AI can **edit files, run commands, commit changes, and browse the web**
|
|
40
|
+
### Autonomous Agent
|
|
41
|
+
AI can **edit files, run commands, commit changes, and browse the web** with a permission system and sandbox for safety.
|
|
42
42
|
|
|
43
43
|
</td>
|
|
44
44
|
<td width="50%">
|
|
45
45
|
|
|
46
|
-
###
|
|
46
|
+
### Smart Context
|
|
47
47
|
**Auto-assembles relevant code** from your project. Session buffer, context trimming, and dependency tracking.
|
|
48
48
|
|
|
49
49
|
</td>
|
|
@@ -51,13 +51,13 @@ AI can **edit files, run commands, commit changes, and browse the web** — with
|
|
|
51
51
|
<tr>
|
|
52
52
|
<td width="50%">
|
|
53
53
|
|
|
54
|
-
###
|
|
54
|
+
### Web Dashboard
|
|
55
55
|
**Next.js 15 platform** with 3D brain visualization, admin panel, billing (Stripe), support tickets, and CLI remote control.
|
|
56
56
|
|
|
57
57
|
</td>
|
|
58
58
|
<td width="50%">
|
|
59
59
|
|
|
60
|
-
###
|
|
60
|
+
### Validation Matrix
|
|
61
61
|
**Automatic output validation** with static checks, dynamic checks, spiral checks, autofix, and quality classification.
|
|
62
62
|
|
|
63
63
|
</td>
|
|
@@ -65,27 +65,27 @@ AI can **edit files, run commands, commit changes, and browse the web** — with
|
|
|
65
65
|
<tr>
|
|
66
66
|
<td width="50%">
|
|
67
67
|
|
|
68
|
-
###
|
|
69
|
-
**Built-in benchmark suite**
|
|
68
|
+
### SWE-Bench Integration
|
|
69
|
+
**Built-in benchmark suite** — run SWE-bench Lite/Verified, compare runs, measure Spiral Memory impact.
|
|
70
70
|
|
|
71
71
|
</td>
|
|
72
72
|
<td width="50%">
|
|
73
73
|
|
|
74
|
-
###
|
|
75
|
-
**Cloud-enriched context**
|
|
74
|
+
### Web Knowledge
|
|
75
|
+
**Cloud-enriched context** — topic detection, web search, content extraction, and automatic knowledge integration.
|
|
76
76
|
|
|
77
77
|
</td>
|
|
78
78
|
</tr>
|
|
79
79
|
<tr>
|
|
80
80
|
<td width="50%">
|
|
81
81
|
|
|
82
|
-
###
|
|
83
|
-
**Automatic bug detection** and persistent journal
|
|
82
|
+
### Bug Tracking
|
|
83
|
+
**Automatic bug detection** and persistent journal — track bugs across sessions with evidence and status.
|
|
84
84
|
|
|
85
85
|
</td>
|
|
86
86
|
<td width="50%">
|
|
87
87
|
|
|
88
|
-
###
|
|
88
|
+
### Checkpoints & Sessions
|
|
89
89
|
**Save and revert** to any checkpoint, multi-session tab view, session lifecycle management.
|
|
90
90
|
|
|
91
91
|
</td>
|
|
@@ -93,28 +93,28 @@ AI can **edit files, run commands, commit changes, and browse the web** — with
|
|
|
93
93
|
<tr>
|
|
94
94
|
<td width="50%">
|
|
95
95
|
|
|
96
|
-
###
|
|
97
|
-
**Puppeteer-based browser control**
|
|
96
|
+
### Browser Automation
|
|
97
|
+
**Puppeteer-based browser control** — navigate, click, type, screenshot, visual analysis with Chrome integration.
|
|
98
98
|
|
|
99
99
|
</td>
|
|
100
100
|
<td width="50%">
|
|
101
101
|
|
|
102
|
-
###
|
|
103
|
-
**OAuth login, API keys, feature gating**
|
|
102
|
+
### Authentication & Security
|
|
103
|
+
**OAuth login, API keys, feature gating** — secure access control with subscription tier enforcement.
|
|
104
104
|
|
|
105
105
|
</td>
|
|
106
106
|
</tr>
|
|
107
107
|
<tr>
|
|
108
108
|
<td width="50%">
|
|
109
109
|
|
|
110
|
-
###
|
|
111
|
-
**Continuous security monitoring**
|
|
110
|
+
### Security Monitor
|
|
111
|
+
**Continuous security monitoring** — threat detection, automated defenses, real-time dashboard with approval queue.
|
|
112
112
|
|
|
113
113
|
</td>
|
|
114
114
|
<td width="50%">
|
|
115
115
|
|
|
116
|
-
###
|
|
117
|
-
**Model Context Protocol**
|
|
116
|
+
### MCP Integration
|
|
117
|
+
**Model Context Protocol** — works with Claude Code, Cursor, VS Code, Windsurf, Codex, JetBrains AI.
|
|
118
118
|
|
|
119
119
|
</td>
|
|
120
120
|
</tr>
|
|
@@ -122,21 +122,23 @@ AI can **edit files, run commands, commit changes, and browse the web** — with
|
|
|
122
122
|
|
|
123
123
|
---
|
|
124
124
|
|
|
125
|
-
##
|
|
126
|
-
|
|
127
|
-
Watch the 3D brain in action:
|
|
125
|
+
## Brain Visualization
|
|
128
126
|
|
|
129
127
|
<div align="center">
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
128
|
+
|
|
129
|
+
https://github.com/user-attachments/assets/brain_3d_vision.mp4
|
|
130
|
+
|
|
131
|
+
[](assets/brain_3d_vision.mp4)
|
|
132
|
+
|
|
133
|
+
*Interactive 3D brain visualization showing memory layers and connections*
|
|
134
|
+
|
|
135
135
|
</div>
|
|
136
136
|
|
|
137
|
+
> **Note:** If the video above does not play, [download it directly](assets/brain_3d_vision.mp4) or clone the repository to view it locally.
|
|
138
|
+
|
|
137
139
|
---
|
|
138
140
|
|
|
139
|
-
##
|
|
141
|
+
## Installation
|
|
140
142
|
|
|
141
143
|
```bash
|
|
142
144
|
# Run directly (no install needed)
|
|
@@ -149,7 +151,7 @@ helixmind
|
|
|
149
151
|
|
|
150
152
|
---
|
|
151
153
|
|
|
152
|
-
##
|
|
154
|
+
## Quick Start
|
|
153
155
|
|
|
154
156
|
```bash
|
|
155
157
|
# Start interactive chat (default command)
|
|
@@ -161,7 +163,7 @@ npx helixmind init
|
|
|
161
163
|
# Send a single message
|
|
162
164
|
npx helixmind chat -m "fix all lint errors in src/"
|
|
163
165
|
|
|
164
|
-
# YOLO mode
|
|
166
|
+
# YOLO mode - auto-approve everything
|
|
165
167
|
npx helixmind chat --yolo
|
|
166
168
|
|
|
167
169
|
# Skip permission prompts
|
|
@@ -176,74 +178,76 @@ npx helixmind feed src/ --watch
|
|
|
176
178
|
|
|
177
179
|
---
|
|
178
180
|
|
|
179
|
-
##
|
|
181
|
+
## CLI Commands
|
|
180
182
|
|
|
181
183
|
| Command | Description |
|
|
182
184
|
|:--------|:------------|
|
|
183
|
-
| `helixmind` / `helixmind chat` |
|
|
184
|
-
| `helixmind helix` |
|
|
185
|
-
| `helixmind init` |
|
|
186
|
-
| `helixmind chat -m "..."` |
|
|
187
|
-
| `helixmind chat --yolo` |
|
|
188
|
-
| `helixmind chat --no-validation` |
|
|
189
|
-
| `helixmind chat --validation-verbose` |
|
|
190
|
-
| `helixmind chat --validation-strict` |
|
|
191
|
-
| `helixmind feed [paths...]` |
|
|
192
|
-
| `helixmind feed --deep` |
|
|
193
|
-
| `helixmind feed --watch` |
|
|
194
|
-
| `helixmind spiral status` |
|
|
195
|
-
| `helixmind spiral search <query>` |
|
|
196
|
-
| `helixmind spiral compact` |
|
|
197
|
-
| `helixmind config set <k> <v>` |
|
|
198
|
-
| `helixmind config get <key>` |
|
|
199
|
-
| `helixmind config list` |
|
|
200
|
-
| `helixmind export [dir]` |
|
|
201
|
-
| `helixmind import <zip>` |
|
|
202
|
-
| `helixmind login` |
|
|
203
|
-
| `helixmind logout` |
|
|
204
|
-
| `helixmind whoami` |
|
|
205
|
-
| `helixmind bench run` |
|
|
206
|
-
| `helixmind bench results` |
|
|
207
|
-
| `helixmind bench compare` |
|
|
208
|
-
| `helixmind bench list` |
|
|
209
|
-
|
|
210
|
-
###
|
|
185
|
+
| `helixmind` / `helixmind chat` | Start interactive chat (default) |
|
|
186
|
+
| `helixmind helix` | Alias for interactive chat |
|
|
187
|
+
| `helixmind init` | Initialize HelixMind in project |
|
|
188
|
+
| `helixmind chat -m "..."` | Send a single message |
|
|
189
|
+
| `helixmind chat --yolo` | Auto-approve all operations |
|
|
190
|
+
| `helixmind chat --no-validation` | Disable output validation |
|
|
191
|
+
| `helixmind chat --validation-verbose` | Detailed validation output |
|
|
192
|
+
| `helixmind chat --validation-strict` | Treat validation warnings as errors |
|
|
193
|
+
| `helixmind feed [paths...]` | Feed files/dirs into spiral |
|
|
194
|
+
| `helixmind feed --deep` | Deep analysis with intent detection |
|
|
195
|
+
| `helixmind feed --watch` | Watch and auto-update spiral |
|
|
196
|
+
| `helixmind spiral status` | Show spiral metrics |
|
|
197
|
+
| `helixmind spiral search <query>` | Search spiral context |
|
|
198
|
+
| `helixmind spiral compact` | Trigger spiral compaction |
|
|
199
|
+
| `helixmind config set <k> <v>` | Set config value |
|
|
200
|
+
| `helixmind config get <key>` | Get config value |
|
|
201
|
+
| `helixmind config list` | Show all config |
|
|
202
|
+
| `helixmind export [dir]` | Export spiral to .helixmind.zip |
|
|
203
|
+
| `helixmind import <zip>` | Import spiral from archive |
|
|
204
|
+
| `helixmind login` | Authenticate with web platform |
|
|
205
|
+
| `helixmind logout` | Remove stored auth |
|
|
206
|
+
| `helixmind whoami` | Show auth status |
|
|
207
|
+
| `helixmind bench run` | Run SWE-bench benchmark |
|
|
208
|
+
| `helixmind bench results` | Show benchmark results |
|
|
209
|
+
| `helixmind bench compare` | Compare benchmark runs |
|
|
210
|
+
| `helixmind bench list` | List past runs |
|
|
211
|
+
|
|
212
|
+
### Keyboard Shortcuts
|
|
211
213
|
|
|
212
214
|
| Key | Action |
|
|
213
215
|
|:----|:-------|
|
|
214
|
-
| `
|
|
215
|
-
| `Ctrl+
|
|
216
|
-
| `Ctrl+
|
|
217
|
-
| `
|
|
216
|
+
| `ESC ESC` | Emergency stop (abort all sessions) |
|
|
217
|
+
| `Ctrl+C` | Exit |
|
|
218
|
+
| `Ctrl+L` | Clear screen |
|
|
219
|
+
| `Ctrl+D` | Toggle debug mode |
|
|
220
|
+
| `Ctrl+PageUp/Down` | Switch session tabs |
|
|
221
|
+
| `Tab` | Autocomplete command |
|
|
218
222
|
|
|
219
223
|
---
|
|
220
224
|
|
|
221
|
-
##
|
|
225
|
+
## Memory Architecture
|
|
222
226
|
|
|
223
227
|
```
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
228
|
+
+-----------------------------------------------------+
|
|
229
|
+
| Level 1 - Focus |
|
|
230
|
+
| Most relevant, recent context |
|
|
231
|
+
+-----------------------------------------------------+
|
|
232
|
+
| Level 2 - Active |
|
|
233
|
+
| Related files, dependencies |
|
|
234
|
+
+-----------------------------------------------------+
|
|
235
|
+
| Level 3 - Reference |
|
|
236
|
+
| Decisions, patterns, code structure |
|
|
237
|
+
+-----------------------------------------------------+
|
|
238
|
+
| Level 4 - Archive |
|
|
239
|
+
| Compressed summaries, old sessions |
|
|
240
|
+
+-----------------------------------------------------+
|
|
241
|
+
| Level 5 - Deep Archive |
|
|
242
|
+
| Long-term knowledge, project history |
|
|
243
|
+
+-----------------------------------------------------+
|
|
240
244
|
```
|
|
241
245
|
|
|
242
246
|
Context automatically flows between levels based on relevance and recency. Cloud enrichment adds web knowledge via topic detection and content extraction.
|
|
243
247
|
|
|
244
248
|
---
|
|
245
249
|
|
|
246
|
-
##
|
|
250
|
+
## Web Platform
|
|
247
251
|
|
|
248
252
|
The web dashboard (available at [helix-mind.ai](https://helix-mind.ai)) is a separate **Next.js 15** application:
|
|
249
253
|
|
|
@@ -252,7 +256,7 @@ The web dashboard (available at [helix-mind.ai](https://helix-mind.ai)) is a sep
|
|
|
252
256
|
| **3D Brain View** | Interactive Three.js visualization of your spiral memory |
|
|
253
257
|
| **Dashboard** | Manage API keys, billing, profile, and CLI connections |
|
|
254
258
|
| **Admin Panel** | User management, ticket system, plans, settings, stats |
|
|
255
|
-
| **CLI Integration** | WebSocket bridge
|
|
259
|
+
| **CLI Integration** | WebSocket bridge — control your CLI from the browser |
|
|
256
260
|
| **Support System** | Built-in ticket system with detail views |
|
|
257
261
|
| **Blog & Docs** | MDX-based with i18n (DE/EN), sidebar navigation |
|
|
258
262
|
| **Auth** | NextAuth with OAuth, staff login, CLI authorization |
|
|
@@ -260,10 +264,9 @@ The web dashboard (available at [helix-mind.ai](https://helix-mind.ai)) is a sep
|
|
|
260
264
|
| **PWA** | Service worker, install prompt, offline support |
|
|
261
265
|
| **Cookie Consent** | GDPR-compliant cookie banner and settings |
|
|
262
266
|
|
|
263
|
-
|
|
264
267
|
---
|
|
265
268
|
|
|
266
|
-
##
|
|
269
|
+
## Configuration
|
|
267
270
|
|
|
268
271
|
Create `.helixmind/config.json` in your project:
|
|
269
272
|
|
|
@@ -280,7 +283,7 @@ Create `.helixmind/config.json` in your project:
|
|
|
280
283
|
}
|
|
281
284
|
```
|
|
282
285
|
|
|
283
|
-
###
|
|
286
|
+
### Environment Variables
|
|
284
287
|
|
|
285
288
|
```bash
|
|
286
289
|
ANTHROPIC_API_KEY=sk-ant-... # For Claude
|
|
@@ -290,7 +293,7 @@ OPENAI_API_KEY=sk-... # For OpenAI/GPT
|
|
|
290
293
|
|
|
291
294
|
---
|
|
292
295
|
|
|
293
|
-
##
|
|
296
|
+
## Tech Stack
|
|
294
297
|
|
|
295
298
|
### CLI
|
|
296
299
|
|
|
@@ -319,7 +322,7 @@ OPENAI_API_KEY=sk-... # For OpenAI/GPT
|
|
|
319
322
|
|
|
320
323
|
---
|
|
321
324
|
|
|
322
|
-
##
|
|
325
|
+
## Development
|
|
323
326
|
|
|
324
327
|
```bash
|
|
325
328
|
# Clone repo
|
|
@@ -349,7 +352,7 @@ npm run dev
|
|
|
349
352
|
|
|
350
353
|
---
|
|
351
354
|
|
|
352
|
-
##
|
|
355
|
+
## Documentation
|
|
353
356
|
|
|
354
357
|
Complete documentation is available in the web dashboard and includes:
|
|
355
358
|
|
|
@@ -366,17 +369,16 @@ Complete documentation is available in the web dashboard and includes:
|
|
|
366
369
|
|
|
367
370
|
---
|
|
368
371
|
|
|
369
|
-
##
|
|
372
|
+
## License
|
|
370
373
|
|
|
371
|
-
[AGPL-3.0](LICENSE)
|
|
374
|
+
[AGPL-3.0](LICENSE) — Free for open-source use. Commercial licenses available.
|
|
372
375
|
|
|
373
376
|
---
|
|
374
377
|
|
|
375
378
|
<div align="center">
|
|
376
379
|
|
|
377
|
-
**Made with
|
|
380
|
+
**Made with care by [HelixMind](https://helix-mind.ai)**
|
|
378
381
|
|
|
379
|
-
[
|
|
382
|
+
[Back to Top](#helixmind)
|
|
380
383
|
|
|
381
384
|
</div>
|
|
382
|
-
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/cli/feed/pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;AAEhE,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC1B,GACL,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/cli/feed/pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;AAEhE,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC1B,GACL,OAAO,CAAC,UAAU,CAAC,CAyOrB"}
|
|
@@ -10,7 +10,7 @@ export async function runFeedPipeline(rootDir, engine, options = {}) {
|
|
|
10
10
|
onProgress?.({ stage: 'scanning', current: scanned.length, total: scanned.length, detail: `${scanned.length} files found` });
|
|
11
11
|
if (scanned.length === 0) {
|
|
12
12
|
return {
|
|
13
|
-
filesScanned: 0, filesRead: 0, nodesCreated: 0, relationsCreated: 0,
|
|
13
|
+
filesScanned: 0, filesRead: 0, nodesCreated: 0, nodesSkipped: 0, relationsCreated: 0,
|
|
14
14
|
modules: [], architecture: 'Unknown', techStack: [], summary: 'No files found',
|
|
15
15
|
};
|
|
16
16
|
}
|
|
@@ -29,9 +29,11 @@ export async function runFeedPipeline(rootDir, engine, options = {}) {
|
|
|
29
29
|
// Stage 5: SPIRAL — Store everything in the engine
|
|
30
30
|
onProgress?.({ stage: 'spiraling', current: 0, total: parsed.length + analysis.modules.length + 1 });
|
|
31
31
|
let nodesCreated = 0;
|
|
32
|
+
let nodesSkipped = 0;
|
|
32
33
|
let relationsCreated = 0;
|
|
33
34
|
const fileNodeIds = new Map(); // relativePath → nodeId
|
|
34
35
|
// 5a: Store individual file nodes (Level 1 — Focus)
|
|
36
|
+
// Engine.store() deduplicates by content hash — identical files are refreshed, not duplicated.
|
|
35
37
|
for (let i = 0; i < parsed.length; i++) {
|
|
36
38
|
const file = parsed[i];
|
|
37
39
|
onProgress?.({
|
|
@@ -48,7 +50,12 @@ export async function runFeedPipeline(rootDir, engine, options = {}) {
|
|
|
48
50
|
tags: ['feed', 'file'],
|
|
49
51
|
});
|
|
50
52
|
fileNodeIds.set(file.relativePath, result.node_id);
|
|
51
|
-
|
|
53
|
+
if (result.deduplicated) {
|
|
54
|
+
nodesSkipped++;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
nodesCreated++;
|
|
58
|
+
}
|
|
52
59
|
}
|
|
53
60
|
catch {
|
|
54
61
|
// Skip on error
|
|
@@ -195,6 +202,7 @@ export async function runFeedPipeline(rootDir, engine, options = {}) {
|
|
|
195
202
|
filesScanned: scanned.length,
|
|
196
203
|
filesRead: readResult.length,
|
|
197
204
|
nodesCreated,
|
|
205
|
+
nodesSkipped,
|
|
198
206
|
relationsCreated,
|
|
199
207
|
modules: analysis.modules,
|
|
200
208
|
architecture: analysis.architecture,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/cli/feed/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,eAAe,EAA4C,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/cli/feed/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/progress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAyBxD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAmC/D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/progress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAyBxD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAmC/D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,GAAG,IAAI,CAuDP"}
|
package/dist/cli/ui/progress.js
CHANGED
|
@@ -55,7 +55,8 @@ export function renderFeedSummary(result) {
|
|
|
55
55
|
process.stdout.write('\n');
|
|
56
56
|
process.stdout.write(`${theme.accent('\u{1F300}')} ${theme.bold('Feed Complete!')}\n\n`);
|
|
57
57
|
process.stdout.write(`${indent}${theme.primary('\u{1F4C1}')} Scanned: ${result.filesScanned} files (${result.filesRead} relevant)\n`);
|
|
58
|
-
|
|
58
|
+
const skipNote = result.nodesSkipped ? ` ${theme.dim(`(${result.nodesSkipped} unchanged)`)}` : '';
|
|
59
|
+
process.stdout.write(`${indent}${theme.primary('\u{1F9E0}')} Created: ${result.nodesCreated} context nodes${skipNote}\n`);
|
|
59
60
|
process.stdout.write(`${indent}${theme.primary('\u{1F517}')} Relations: ${result.relationsCreated} connections\n`);
|
|
60
61
|
if (result.modules.length > 0) {
|
|
61
62
|
process.stdout.write(`${indent}${theme.primary('\u{1F4CA}')} Modules detected:\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/cli/ui/progress.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/cli/ui/progress.ts"],"names":[],"mappings":"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"}
|
package/dist/spiral/engine.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare class SpiralEngine {
|
|
|
23
23
|
query(queryText: string, maxTokens?: number, levels?: number[]): Promise<SpiralQueryResult>;
|
|
24
24
|
/**
|
|
25
25
|
* Store new context in the spiral.
|
|
26
|
+
* Deduplicates by content hash — identical content is refreshed, not duplicated.
|
|
26
27
|
*/
|
|
27
28
|
store(content: string, type: ContextType, metadata?: NodeMetadata, relations?: string[]): Promise<SpiralStoreResult>;
|
|
28
29
|
/**
|
|
@@ -75,6 +76,7 @@ export declare class SpiralEngine {
|
|
|
75
76
|
}>): Promise<void>;
|
|
76
77
|
/**
|
|
77
78
|
* Import a node directly (for ZIP import). Returns store result.
|
|
79
|
+
* Uses content hash for deduplication.
|
|
78
80
|
*/
|
|
79
81
|
importNode(input: {
|
|
80
82
|
type: ContextType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/spiral/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,EACL,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/spiral/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,EACL,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAM5E;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAsBhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,iBAAiB,CAAC;IAW7B;;;OAGG;IACG,KAAK,CACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,QAAQ,CAAC,EAAE,YAAY,EACvB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,iBAAiB,CAAC;IA4F7B;;OAEG;IACH,MAAM,IAAI,kBAAkB;IAyB5B,6CAA6C;IAC7C,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,OAAO,GAAG,mBAAmB;IAIjD;;OAEG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IASP;;OAEG;IACH,sBAAsB,IAAI;QACxB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,WAAW,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC;YAClB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,CAAC;YACX,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ;IAoCD;;;OAGG;IACH,MAAM,IAAI,eAAe;IAIzB;;;OAGG;IACG,SAAS,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/F;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACzB,GAAG,iBAAiB;IAgCrB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/spiral/engine.js
CHANGED
|
@@ -8,6 +8,7 @@ import { CompressionService } from './compression.js';
|
|
|
8
8
|
import { logger } from '../utils/logger.js';
|
|
9
9
|
import { statSync } from 'node:fs';
|
|
10
10
|
import { join } from 'node:path';
|
|
11
|
+
import { createHash } from 'node:crypto';
|
|
11
12
|
/**
|
|
12
13
|
* Core engine that orchestrates all spiral operations.
|
|
13
14
|
*/
|
|
@@ -52,13 +53,42 @@ export class SpiralEngine {
|
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
54
55
|
* Store new context in the spiral.
|
|
56
|
+
* Deduplicates by content hash — identical content is refreshed, not duplicated.
|
|
55
57
|
*/
|
|
56
58
|
async store(content, type, metadata, relations) {
|
|
57
|
-
|
|
59
|
+
const meta = metadata ?? {};
|
|
60
|
+
const contentHash = createHash('sha256').update(content).digest('hex');
|
|
61
|
+
// Dedup check: if identical content already exists, refresh it instead of creating a new node
|
|
62
|
+
const existing = this.nodes.findByContentHash(contentHash);
|
|
63
|
+
if (existing) {
|
|
64
|
+
// Merge tags from new metadata into existing
|
|
65
|
+
const existingMeta = existing.metadata;
|
|
66
|
+
if (meta.tags && Array.isArray(meta.tags)) {
|
|
67
|
+
const existingTags = Array.isArray(existingMeta.tags) ? existingMeta.tags : [];
|
|
68
|
+
const merged = [...new Set([...existingTags, ...meta.tags])];
|
|
69
|
+
existingMeta.tags = merged;
|
|
70
|
+
}
|
|
71
|
+
// Copy over any new metadata keys (except tags, already merged)
|
|
72
|
+
for (const [key, val] of Object.entries(meta)) {
|
|
73
|
+
if (key !== 'tags')
|
|
74
|
+
existingMeta[key] = val;
|
|
75
|
+
}
|
|
76
|
+
this.nodes.refreshNode(existing.id, content, existingMeta, contentHash);
|
|
77
|
+
logger.debug(`Dedup: refreshed existing node ${existing.id} (type: ${type})`);
|
|
78
|
+
return {
|
|
79
|
+
node_id: existing.id,
|
|
80
|
+
level: existing.level,
|
|
81
|
+
connections: 0,
|
|
82
|
+
token_count: existing.token_count,
|
|
83
|
+
deduplicated: true,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// Create the node with content hash
|
|
58
87
|
const node = this.nodes.create({
|
|
59
88
|
type,
|
|
60
89
|
content,
|
|
61
|
-
metadata:
|
|
90
|
+
metadata: meta,
|
|
91
|
+
content_hash: contentHash,
|
|
62
92
|
});
|
|
63
93
|
// Generate and store embedding
|
|
64
94
|
const embedding = await this.embeddings.embed(content);
|
|
@@ -231,14 +261,28 @@ export class SpiralEngine {
|
|
|
231
261
|
}
|
|
232
262
|
/**
|
|
233
263
|
* Import a node directly (for ZIP import). Returns store result.
|
|
264
|
+
* Uses content hash for deduplication.
|
|
234
265
|
*/
|
|
235
266
|
importNode(input) {
|
|
267
|
+
const contentHash = createHash('sha256').update(input.content).digest('hex');
|
|
268
|
+
// Dedup: skip if identical content already exists
|
|
269
|
+
const existing = this.nodes.findByContentHash(contentHash);
|
|
270
|
+
if (existing) {
|
|
271
|
+
return {
|
|
272
|
+
node_id: existing.id,
|
|
273
|
+
level: existing.level,
|
|
274
|
+
connections: 0,
|
|
275
|
+
token_count: existing.token_count,
|
|
276
|
+
deduplicated: true,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
236
279
|
const node = this.nodes.create({
|
|
237
280
|
type: input.type,
|
|
238
281
|
content: input.content,
|
|
239
282
|
metadata: input.metadata ?? {},
|
|
240
283
|
level: input.level,
|
|
241
284
|
relevance_score: input.relevanceScore,
|
|
285
|
+
content_hash: contentHash,
|
|
242
286
|
});
|
|
243
287
|
return {
|
|
244
288
|
node_id: node.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/spiral/engine.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAwB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/spiral/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AA6C3C,qBAAa,QAAQ;IACnB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM;IAuB3B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,OAAO;IAmFf,KAAK,IAAI,IAAI;CAMd"}
|
package/dist/storage/database.js
CHANGED
|
@@ -7,6 +7,7 @@ CREATE TABLE IF NOT EXISTS nodes (
|
|
|
7
7
|
id TEXT PRIMARY KEY,
|
|
8
8
|
type TEXT NOT NULL,
|
|
9
9
|
content TEXT NOT NULL,
|
|
10
|
+
content_hash TEXT,
|
|
10
11
|
summary TEXT,
|
|
11
12
|
level INTEGER NOT NULL DEFAULT 1 CHECK(level IN (1, 2, 3, 4, 5)),
|
|
12
13
|
relevance_score REAL NOT NULL DEFAULT 1.0,
|
|
@@ -33,6 +34,7 @@ CREATE INDEX IF NOT EXISTS idx_nodes_level ON nodes(level);
|
|
|
33
34
|
CREATE INDEX IF NOT EXISTS idx_nodes_relevance ON nodes(relevance_score);
|
|
34
35
|
CREATE INDEX IF NOT EXISTS idx_nodes_updated ON nodes(updated_at);
|
|
35
36
|
CREATE INDEX IF NOT EXISTS idx_nodes_accessed ON nodes(accessed_at);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_content_hash ON nodes(content_hash);
|
|
36
38
|
CREATE INDEX IF NOT EXISTS idx_edges_source ON edges(source_id);
|
|
37
39
|
CREATE INDEX IF NOT EXISTS idx_edges_target ON edges(target_id);
|
|
38
40
|
CREATE INDEX IF NOT EXISTS idx_edges_type ON edges(relation_type);
|
|
@@ -89,12 +91,14 @@ export class Database {
|
|
|
89
91
|
ALTER TABLE nodes RENAME TO nodes_old;
|
|
90
92
|
CREATE TABLE nodes (
|
|
91
93
|
id TEXT PRIMARY KEY, type TEXT NOT NULL, content TEXT NOT NULL,
|
|
94
|
+
content_hash TEXT,
|
|
92
95
|
summary TEXT, level INTEGER NOT NULL DEFAULT 1 CHECK(level IN (1, 2, 3, 4, 5)),
|
|
93
96
|
relevance_score REAL NOT NULL DEFAULT 1.0,
|
|
94
97
|
token_count INTEGER NOT NULL DEFAULT 0, metadata TEXT NOT NULL DEFAULT '{}',
|
|
95
98
|
created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, accessed_at INTEGER NOT NULL
|
|
96
99
|
);
|
|
97
|
-
INSERT INTO nodes
|
|
100
|
+
INSERT INTO nodes (id, type, content, summary, level, relevance_score, token_count, metadata, created_at, updated_at, accessed_at)
|
|
101
|
+
SELECT id, type, content, summary, level, relevance_score, token_count, metadata, created_at, updated_at, accessed_at FROM nodes_old;
|
|
98
102
|
DROP TABLE nodes_old;
|
|
99
103
|
|
|
100
104
|
ALTER TABLE edges RENAME TO edges_old;
|
|
@@ -114,6 +118,7 @@ export class Database {
|
|
|
114
118
|
CREATE INDEX IF NOT EXISTS idx_nodes_relevance ON nodes(relevance_score);
|
|
115
119
|
CREATE INDEX IF NOT EXISTS idx_nodes_updated ON nodes(updated_at);
|
|
116
120
|
CREATE INDEX IF NOT EXISTS idx_nodes_accessed ON nodes(accessed_at);
|
|
121
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_content_hash ON nodes(content_hash);
|
|
117
122
|
CREATE INDEX IF NOT EXISTS idx_edges_source ON edges(source_id);
|
|
118
123
|
CREATE INDEX IF NOT EXISTS idx_edges_target ON edges(target_id);
|
|
119
124
|
CREATE INDEX IF NOT EXISTS idx_edges_type ON edges(relation_type);
|
|
@@ -126,9 +131,21 @@ export class Database {
|
|
|
126
131
|
}
|
|
127
132
|
this.raw.exec('PRAGMA foreign_keys = ON');
|
|
128
133
|
}
|
|
129
|
-
// Set version
|
|
134
|
+
// Set version to 4 (includes content_hash)
|
|
130
135
|
this.raw.exec('DELETE FROM schema_version');
|
|
131
|
-
this.raw.prepare('INSERT INTO schema_version (version) VALUES (?)').run(
|
|
136
|
+
this.raw.prepare('INSERT INTO schema_version (version) VALUES (?)').run(4);
|
|
137
|
+
}
|
|
138
|
+
// Migration v3 → v4: add content_hash column for deduplication
|
|
139
|
+
if (currentVersion === 3) {
|
|
140
|
+
try {
|
|
141
|
+
this.raw.exec('ALTER TABLE nodes ADD COLUMN content_hash TEXT');
|
|
142
|
+
this.raw.exec('CREATE INDEX IF NOT EXISTS idx_nodes_content_hash ON nodes(content_hash)');
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Column may already exist
|
|
146
|
+
}
|
|
147
|
+
this.raw.exec('DELETE FROM schema_version');
|
|
148
|
+
this.raw.prepare('INSERT INTO schema_version (version) VALUES (?)').run(4);
|
|
132
149
|
}
|
|
133
150
|
}
|
|
134
151
|
close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCd,CAAC;AAEF,MAAM,OAAO,QAAQ;IACV,GAAG,CAAyB;IAC5B,eAAe,CAAU;IAC1B,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,OAAe;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAErC,sBAAsB;QACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAExC,mCAAmC;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAElD,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtB,mEAAmE;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,UAAU,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC;YACH,+DAA+D;YAC/D,iEAAiE;YACjE,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,OAAO;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CACjC,4CAA4C,CAC7C,CAAC,GAAG,EAAqC,CAAC;QAE3C,MAAM,cAAc,GAAG,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC;QAEhD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAChC,mEAAmE,CACpE,CAAC,GAAG,EAAkC,EAAE,GAAG,IAAI,EAAE,CAAC;YAEnD,0EAA0E;YAC1E,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;gBACvD,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAEtE,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAEnC,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCb,CAAC,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC5C,CAAC;YAED,2CAA2C;YAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,+DAA+D;QAC/D,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;CACF"}
|
package/dist/storage/nodes.d.ts
CHANGED
|
@@ -11,7 +11,18 @@ interface CreateNodeInput {
|
|
|
11
11
|
export declare class NodeStore {
|
|
12
12
|
private db;
|
|
13
13
|
constructor(db: Database);
|
|
14
|
-
create(input: CreateNodeInput
|
|
14
|
+
create(input: CreateNodeInput & {
|
|
15
|
+
content_hash?: string;
|
|
16
|
+
}): ContextNode;
|
|
17
|
+
/**
|
|
18
|
+
* Find a node by its content hash (for deduplication).
|
|
19
|
+
* Returns null if no matching node exists.
|
|
20
|
+
*/
|
|
21
|
+
findByContentHash(hash: string): ContextNode | null;
|
|
22
|
+
/**
|
|
23
|
+
* Update an existing node's content, metadata, and access time (for dedup refresh).
|
|
24
|
+
*/
|
|
25
|
+
refreshNode(id: string, content: string, metadata: NodeMetadata, contentHash: string): void;
|
|
15
26
|
getById(id: string): ContextNode | null;
|
|
16
27
|
getByLevel(level: SpiralLevel): ContextNode[];
|
|
17
28
|
getAll(): ContextNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/storage/nodes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGvF,UAAU,eAAe;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/storage/nodes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGvF,UAAU,eAAe;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAiCD,qBAAa,SAAS;IACpB,OAAO,CAAC,EAAE,CAAW;gBAET,EAAE,EAAE,QAAQ;IAIxB,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAsCvE;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAOnD;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAS3F,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAWvC,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE;IAK7C,MAAM,IAAI,WAAW,EAAE;IAKvB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAOtC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAIjD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhD,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhD,KAAK,IAAI,MAAM;IAKf,YAAY,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC;IAS3C,uEAAuE;IACvE,iBAAiB,IAAI,MAAM;IAK3B,kBAAkB,IAAI;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAKtE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,EAAE;IAMpD;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC,GAAG,IAAI;CAU7F"}
|
package/dist/storage/nodes.js
CHANGED
|
@@ -25,9 +25,9 @@ export class NodeStore {
|
|
|
25
25
|
const now = Date.now();
|
|
26
26
|
const tokenCount = estimateTokens(input.content);
|
|
27
27
|
this.db.raw.prepare(`
|
|
28
|
-
INSERT INTO nodes (id, type, content, summary, level, relevance_score, token_count, metadata, created_at, updated_at, accessed_at)
|
|
29
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
30
|
-
`).run(id, input.type, input.content, input.summary ?? null, input.level ?? 1, input.relevance_score ?? 1.0, tokenCount, JSON.stringify(input.metadata), now, now, now);
|
|
28
|
+
INSERT INTO nodes (id, type, content, content_hash, summary, level, relevance_score, token_count, metadata, created_at, updated_at, accessed_at)
|
|
29
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
30
|
+
`).run(id, input.type, input.content, input.content_hash ?? null, input.summary ?? null, input.level ?? 1, input.relevance_score ?? 1.0, tokenCount, JSON.stringify(input.metadata), now, now, now);
|
|
31
31
|
return {
|
|
32
32
|
id,
|
|
33
33
|
type: input.type,
|
|
@@ -42,6 +42,25 @@ export class NodeStore {
|
|
|
42
42
|
accessed_at: now,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Find a node by its content hash (for deduplication).
|
|
47
|
+
* Returns null if no matching node exists.
|
|
48
|
+
*/
|
|
49
|
+
findByContentHash(hash) {
|
|
50
|
+
const row = this.db.raw.prepare('SELECT * FROM nodes WHERE content_hash = ? LIMIT 1').get(hash);
|
|
51
|
+
return row ? rowToNode(row) : null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Update an existing node's content, metadata, and access time (for dedup refresh).
|
|
55
|
+
*/
|
|
56
|
+
refreshNode(id, content, metadata, contentHash) {
|
|
57
|
+
const now = Date.now();
|
|
58
|
+
const tokenCount = estimateTokens(content);
|
|
59
|
+
this.db.raw.prepare(`
|
|
60
|
+
UPDATE nodes SET content = ?, content_hash = ?, token_count = ?, metadata = ?, updated_at = ?, accessed_at = ?
|
|
61
|
+
WHERE id = ?
|
|
62
|
+
`).run(content, contentHash, tokenCount, JSON.stringify(metadata), now, now, id);
|
|
63
|
+
}
|
|
45
64
|
getById(id) {
|
|
46
65
|
const row = this.db.raw.prepare('SELECT * FROM nodes WHERE id = ?').get(id);
|
|
47
66
|
if (!row)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/storage/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/storage/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -55,6 +55,8 @@ export interface SpiralStoreResult {
|
|
|
55
55
|
level: SpiralLevel;
|
|
56
56
|
connections: number;
|
|
57
57
|
token_count: number;
|
|
58
|
+
/** True if this content already existed and was refreshed instead of duplicated */
|
|
59
|
+
deduplicated?: boolean;
|
|
58
60
|
}
|
|
59
61
|
export interface SpiralStatusResult {
|
|
60
62
|
total_nodes: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5G,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,iFAAiF;AACjF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAMnD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,YAAY,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|