@jarkkojs/goosedump 0.12.25 → 0.12.27
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 +26 -97
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# goosedump
|
|
2
2
|
|
|
3
3
|
`goosedump` browses, searches, converts, and compacts saved coding-agent
|
|
4
|
-
|
|
4
|
+
sessions. It also provides project-scoped durable memory for Claude Code,
|
|
5
5
|
Codex, Crush, Gemini CLI, Goose, OpenCode, and Pi.
|
|
6
6
|
|
|
7
7
|
It builds on ideas from [`lllyasviel/VCC`](https://github.com/lllyasviel/VCC).
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
-
Prebuilt binaries
|
|
11
|
+
Prebuilt binaries support Linux x64 and arm64, macOS arm64, and Windows x64:
|
|
12
12
|
|
|
13
13
|
```sh
|
|
14
14
|
npm install --global @jarkkojs/goosedump
|
|
@@ -20,7 +20,7 @@ To build from source:
|
|
|
20
20
|
cargo build --release
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
Source builds require a C compiler
|
|
23
|
+
Requires Node.js 18 or later. Source builds require Rust 1.95 and a C compiler.
|
|
24
24
|
|
|
25
25
|
## Quick start
|
|
26
26
|
|
|
@@ -30,100 +30,34 @@ goosedump session show pi:context-id
|
|
|
30
30
|
goosedump session find pi:context-id '*database*'
|
|
31
31
|
goosedump session search pi:context-id 'database failure'
|
|
32
32
|
goosedump session compact pi:context-id
|
|
33
|
+
goosedump memory remember pi:context-id
|
|
34
|
+
goosedump memory recall 'database failure'
|
|
33
35
|
```
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
[manual page](https://github.com/jarkkojs/goosedump/blob/main/man/man1/goosedump.1)
|
|
38
|
-
for complete usage.
|
|
37
|
+
Commands that address a saved session require a `provider:session-id` target.
|
|
38
|
+
See `goosedump --help` and the [manual page](man/man1/goosedump.1) for options.
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## Compaction and memory
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
Compaction creates a summary and does not change durable memory. Summaries have
|
|
43
|
+
an estimated 4,096-token limit by default; pass `--summary-max-tokens 0` to
|
|
44
|
+
disable it.
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
session search PROVIDER:ID QUERY [range options] [--page NUMBER] [--as PROVIDER]
|
|
49
|
-
session compact PROVIDER:ID [range options] [--previous-summary SUMMARY] [--summary-max-tokens NUMBER] [--plain] [--as PROVIDER]
|
|
50
|
-
session copy PROVIDER:ID --to PROVIDER [--yes]
|
|
51
|
-
session remove PROVIDER:ID [--yes]
|
|
46
|
+
`memory remember` extracts typed statements and provenance from new session
|
|
47
|
+
entries. Recall searches the current project by default, combining lexical,
|
|
48
|
+
entity, and semantic matches. Use `--history` for superseded memories or
|
|
49
|
+
`--all-projects` to search every project.
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
memory list [--project PATH | --all-projects] [--type TYPE] [--limit NUMBER] [--history] [--json]
|
|
56
|
-
memory show MEM_ID [--json]
|
|
57
|
-
memory forget MEM_ID|PROVIDER:ID [--yes] [--json]
|
|
58
|
-
memory status [--json]
|
|
51
|
+
The text and embedding models run locally and download on first use. Statements,
|
|
52
|
+
vectors, and provenance are stored together in SQLite.
|
|
59
53
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
`session copy`, `session remove`, and `memory forget` print their plan by default.
|
|
64
|
-
Pass `--yes` to carry out the change.
|
|
65
|
-
|
|
66
|
-
## Compaction
|
|
67
|
-
|
|
68
|
-
`session compact` creates a summary; it never changes durable memory. Summaries are
|
|
69
|
-
bounded to an estimated 4,096 tokens by default. Use `--summary-max-tokens` to
|
|
70
|
-
change the budget or `0` to disable it. The bound is best-effort when preserved
|
|
71
|
-
goals, blockers, decisions, and preferences already exceed it.
|
|
72
|
-
|
|
73
|
-
## Durable memory
|
|
74
|
-
|
|
75
|
-
Memory is explicit and separate from compaction:
|
|
76
|
-
|
|
77
|
-
1. **Remember:** [`gpt-oss-20b`](docs/models/gpt-oss-20b.md) extracts typed,
|
|
78
|
-
atomic statements with source provenance. [`bge-small-en-v1.5`](docs/models/bge-small-en-v1.5.md)
|
|
79
|
-
embeds each statement. SQLite stores statements and provenance, while the
|
|
80
|
-
bundled [`sqlite-vec`](https://github.com/asg017/sqlite-vec) extension indexes
|
|
81
|
-
vectors in the same database.
|
|
82
|
-
2. **Recall:** lexical and entity matches come first. SQLite KNN queries over
|
|
83
|
-
cosine-similar BGE vectors fill the remaining slots.
|
|
84
|
-
|
|
85
|
-
Memories are classified as decisions, facts, preferences, procedures, or lessons.
|
|
86
|
-
|
|
87
|
-
`memory remember` processes only new session entries, so remembering an unchanged
|
|
88
|
-
session is idempotent. A new version of a memory can supersede an older active
|
|
89
|
-
statement of the same type.
|
|
90
|
-
|
|
91
|
-
Recall searches active memories from the current project by default. Use
|
|
92
|
-
`--history` for superseded statements or `--all-projects` to search everywhere.
|
|
93
|
-
`memory show` displays provenance, and `memory forget` leaves a tombstone so
|
|
94
|
-
forgotten content is not learned again accidentally.
|
|
95
|
-
|
|
96
|
-
Session-index caches are rebuilt when their format changes. Durable-memory schema
|
|
97
|
-
16 intentionally breaks compatibility with earlier databases. Back up and remove
|
|
98
|
-
`memory.sqlite3` when upgrading from schema 15 or older.
|
|
99
|
-
|
|
100
|
-
## Local inference
|
|
101
|
-
|
|
102
|
-
Both models run locally. Download them with `goosedump model pull`, or use
|
|
103
|
-
`model pull text` or `model pull embedding`. Recall still uses lexical and entity
|
|
104
|
-
matching when the embedding model is not cached.
|
|
105
|
-
|
|
106
|
-
Text generation uses every logical CPU by default. Sentence embedding caps a
|
|
107
|
-
single query at two threads and uses the configured maximum for token-batched
|
|
108
|
-
indexing. Override the maximum for both models with `GOOSEDUMP_INFERENCE_THREADS`:
|
|
109
|
-
|
|
110
|
-
```sh
|
|
111
|
-
GOOSEDUMP_INFERENCE_THREADS=6 goosedump session compact pi:context-id
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
The optional `bench` feature measures `session compact`. Keep the machine,
|
|
115
|
-
session range, and model cache unchanged when comparing runs:
|
|
116
|
-
|
|
117
|
-
```sh
|
|
118
|
-
# Point benches/bench.txt at a real session first.
|
|
119
|
-
cargo bench --features bench
|
|
120
|
-
```
|
|
54
|
+
Durable-memory schema 16 is incompatible with older databases. When upgrading
|
|
55
|
+
from schema 15 or earlier, back up and remove `memory.sqlite3`.
|
|
121
56
|
|
|
122
57
|
## Pi extension
|
|
123
58
|
|
|
124
59
|
The bundled [pi-goosedump extension](packages/pi-goosedump/README.md) adds
|
|
125
|
-
session search,
|
|
126
|
-
Pi:
|
|
60
|
+
session search, memory, session management, and compaction to Pi:
|
|
127
61
|
|
|
128
62
|
```sh
|
|
129
63
|
pi install npm:pi-goosedump
|
|
@@ -137,16 +71,11 @@ cargo clippy --all-targets -- -D warnings
|
|
|
137
71
|
cargo fmt --check
|
|
138
72
|
```
|
|
139
73
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
## Licensing
|
|
143
|
-
|
|
144
|
-
1. `pi-goosedump`: Apache 2.0
|
|
145
|
-
2. `goosedump`: LGPL 2.1+
|
|
146
|
-
|
|
147
|
-
### Third Party Attribution
|
|
74
|
+
## License
|
|
148
75
|
|
|
149
|
-
|
|
150
|
-
|
|
76
|
+
- `goosedump`: LGPL-2.1-or-later
|
|
77
|
+
- `pi-goosedump`: Apache-2.0
|
|
78
|
+
- GPT-OSS-20B: Apache-2.0
|
|
79
|
+
- bge-small-en-v1.5: MIT
|
|
151
80
|
|
|
152
|
-
|
|
81
|
+
Models are downloaded at run time and are not distributed with goosedump.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jarkkojs/goosedump",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.27",
|
|
4
4
|
"description": "Coding agent context data browser",
|
|
5
5
|
"license": "Apache-2.0 AND LGPL-2.1-or-later",
|
|
6
6
|
"homepage": "https://github.com/jarkkojs/goosedump#readme",
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"LICENSE-LGPL-2.1"
|
|
22
22
|
],
|
|
23
23
|
"optionalDependencies": {
|
|
24
|
-
"@jarkkojs/goosedump-darwin-arm64": "0.12.
|
|
25
|
-
"@jarkkojs/goosedump-linux-arm64": "0.12.
|
|
26
|
-
"@jarkkojs/goosedump-linux-x64": "0.12.
|
|
27
|
-
"@jarkkojs/goosedump-win32-x64": "0.12.
|
|
24
|
+
"@jarkkojs/goosedump-darwin-arm64": "0.12.27",
|
|
25
|
+
"@jarkkojs/goosedump-linux-arm64": "0.12.27",
|
|
26
|
+
"@jarkkojs/goosedump-linux-x64": "0.12.27",
|
|
27
|
+
"@jarkkojs/goosedump-win32-x64": "0.12.27"
|
|
28
28
|
},
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"access": "public"
|