keep-skill 0.6.0__py3-none-any.whl → 0.7.0__py3-none-any.whl
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.
- keep/__init__.py +3 -3
- keep/api.py +3 -3
- keep/cli.py +3 -3
- keep/config.py +1 -1
- keep/data/system/now.md +2 -2
- keep/providers/__init__.py +1 -1
- keep/types.py +2 -2
- {keep_skill-0.6.0.dist-info → keep_skill-0.7.0.dist-info}/METADATA +6 -27
- {keep_skill-0.6.0.dist-info → keep_skill-0.7.0.dist-info}/RECORD +12 -12
- {keep_skill-0.6.0.dist-info → keep_skill-0.7.0.dist-info}/WHEEL +0 -0
- {keep_skill-0.6.0.dist-info → keep_skill-0.7.0.dist-info}/entry_points.txt +0 -0
- {keep_skill-0.6.0.dist-info → keep_skill-0.7.0.dist-info}/licenses/LICENSE +0 -0
keep/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Keep -
|
|
2
|
+
Keep - Reflective Memory
|
|
3
3
|
|
|
4
|
-
A persistent
|
|
4
|
+
A persistent reflective memory with similarity search, full-text search,
|
|
5
5
|
and tag-based retrieval. Remember everything, find by meaning.
|
|
6
6
|
|
|
7
7
|
Quick Start:
|
|
@@ -40,7 +40,7 @@ if not os.environ.get("KEEP_VERBOSE"):
|
|
|
40
40
|
from .api import Keeper, NOWDOC_ID
|
|
41
41
|
from .types import Item, filter_non_system_tags, SYSTEM_TAG_PREFIX, INTERNAL_TAGS
|
|
42
42
|
|
|
43
|
-
__version__ = "0.
|
|
43
|
+
__version__ = "0.7.0"
|
|
44
44
|
__all__ = [
|
|
45
45
|
"Keeper",
|
|
46
46
|
"Item",
|
keep/api.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Core API for
|
|
2
|
+
Core API for reflective memory.
|
|
3
3
|
|
|
4
4
|
This is the minimal working implementation focused on:
|
|
5
5
|
- update(): fetch → embed → summarize → store
|
|
@@ -269,7 +269,7 @@ def _text_content_id(content: str) -> str:
|
|
|
269
269
|
|
|
270
270
|
class Keeper:
|
|
271
271
|
"""
|
|
272
|
-
|
|
272
|
+
Reflective memory keeper - persistent storage with similarity search.
|
|
273
273
|
|
|
274
274
|
Example:
|
|
275
275
|
kp = Keeper()
|
|
@@ -284,7 +284,7 @@ class Keeper:
|
|
|
284
284
|
decay_half_life_days: float = 30.0
|
|
285
285
|
) -> None:
|
|
286
286
|
"""
|
|
287
|
-
Initialize or open an existing
|
|
287
|
+
Initialize or open an existing reflective memory store.
|
|
288
288
|
|
|
289
289
|
Args:
|
|
290
290
|
store_path: Path to store directory. Uses default if not specified.
|
keep/cli.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
CLI interface for
|
|
2
|
+
CLI interface for reflective memory.
|
|
3
3
|
|
|
4
4
|
Usage:
|
|
5
5
|
keepfind "query text"
|
|
@@ -78,7 +78,7 @@ def _get_full_output() -> bool:
|
|
|
78
78
|
|
|
79
79
|
app = typer.Typer(
|
|
80
80
|
name="keep",
|
|
81
|
-
help="
|
|
81
|
+
help="Reflective memory with semantic search.",
|
|
82
82
|
no_args_is_help=False,
|
|
83
83
|
invoke_without_command=True,
|
|
84
84
|
rich_markup_mode=None,
|
|
@@ -232,7 +232,7 @@ def main_callback(
|
|
|
232
232
|
is_eager=True,
|
|
233
233
|
)] = False,
|
|
234
234
|
):
|
|
235
|
-
"""
|
|
235
|
+
"""Reflective memory with semantic search."""
|
|
236
236
|
# If no subcommand provided, show the current context (now)
|
|
237
237
|
if ctx.invoked_subcommand is None:
|
|
238
238
|
from .api import NOWDOC_ID
|
keep/config.py
CHANGED
keep/data/system/now.md
CHANGED
|
@@ -5,7 +5,7 @@ tags:
|
|
|
5
5
|
---
|
|
6
6
|
# Now
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Reminders for essential practice.
|
|
9
9
|
(Keep this updated as you need)
|
|
10
10
|
|
|
11
11
|
**Before acting:**
|
|
@@ -16,4 +16,4 @@ This is top-of-mind right now. Reminders for essential practice.
|
|
|
16
16
|
**After acting:**
|
|
17
17
|
- What happened? `keep update "what I learned" -t context=learning`
|
|
18
18
|
- What do I save? `keep update`
|
|
19
|
-
- What now? `keep now "Current
|
|
19
|
+
- What now? `keep now "Current intention: ..."`
|
keep/providers/__init__.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Provider interfaces for
|
|
2
|
+
Provider interfaces for reflective memory services.
|
|
3
3
|
|
|
4
4
|
Each provider type defines a protocol that concrete implementations must follow.
|
|
5
5
|
Providers are configured at store initialization and handle the heavy lifting of:
|
keep/types.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Data types for
|
|
2
|
+
Data types for reflective memory.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from dataclasses import dataclass, field
|
|
@@ -27,7 +27,7 @@ def filter_non_system_tags(tags: dict[str, str]) -> dict[str, str]:
|
|
|
27
27
|
@dataclass(frozen=True)
|
|
28
28
|
class Item:
|
|
29
29
|
"""
|
|
30
|
-
An item retrieved from the
|
|
30
|
+
An item retrieved from the reflective memory store.
|
|
31
31
|
|
|
32
32
|
This is a read-only snapshot. To modify an item, use api.update()
|
|
33
33
|
which returns a new Item with updated values.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: keep-skill
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.7.0
|
|
4
|
+
Summary: Reflective memory - remember and search documents by meaning
|
|
5
5
|
Project-URL: Homepage, https://github.com/hughpyle/keep
|
|
6
6
|
Project-URL: Repository, https://github.com/hughpyle/keep
|
|
7
7
|
Author: Hugh Pyle
|
|
@@ -51,7 +51,7 @@ Description-Content-Type: text/markdown
|
|
|
51
51
|
|
|
52
52
|
# keep
|
|
53
53
|
|
|
54
|
-
**
|
|
54
|
+
**Reflective memory with version history.**
|
|
55
55
|
|
|
56
56
|
Index documents and notes. Search by meaning. Track changes over time.
|
|
57
57
|
|
|
@@ -176,35 +176,14 @@ See [docs/QUICKSTART.md](docs/QUICKSTART.md) for configuration and more examples
|
|
|
176
176
|
This library was designed as an agent skill — persistent memory that helps agents reflect before acting and learn from experience.
|
|
177
177
|
|
|
178
178
|
**The practice:**
|
|
179
|
-
-
|
|
180
|
-
- Notice breakdowns — when assumptions surface, index them
|
|
181
|
-
-
|
|
179
|
+
- Before acting, use `keep` to reflect on the context.
|
|
180
|
+
- Notice breakdowns — when assumptions surface, index them.
|
|
181
|
+
- After acting, use `keep` to save your context and intentions.
|
|
182
182
|
|
|
183
183
|
See **[SKILL.md](SKILL.md)** for the full practice guide.
|
|
184
184
|
|
|
185
185
|
---
|
|
186
186
|
|
|
187
|
-
## Status
|
|
188
|
-
|
|
189
|
-
**Current:** v0.3.0
|
|
190
|
-
|
|
191
|
-
**Working:**
|
|
192
|
-
- ✅ Semantic search with embeddings
|
|
193
|
-
- ✅ Document versioning (all updates retain history)
|
|
194
|
-
- ✅ Content-addressed IDs for text (same content = same ID)
|
|
195
|
-
- ✅ Tag queries and full-text search
|
|
196
|
-
- ✅ Current context tracking (`keep now`)
|
|
197
|
-
- ✅ Recency decay (recent items rank higher)
|
|
198
|
-
- ✅ Lazy summarization (background processing)
|
|
199
|
-
- ✅ Provider abstraction (local or API-based)
|
|
200
|
-
|
|
201
|
-
**Planned** (see [later/](later/)):
|
|
202
|
-
- ⏳ Private/shared routing
|
|
203
|
-
- ⏳ Relationship graphs between items
|
|
204
|
-
- ⏳ LLM-based auto-tagging
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
187
|
## License
|
|
209
188
|
|
|
210
189
|
MIT
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
keep/__init__.py,sha256=
|
|
1
|
+
keep/__init__.py,sha256=yBK7jvbQmx9fRBGanICNgrQdyCQHzt5bNPp098Qvh9E,1621
|
|
2
2
|
keep/__main__.py,sha256=3Uu70IhIDIjh8OW6jp9jQQ3dF2lKdJWi_3FtRIQMiMY,104
|
|
3
|
-
keep/api.py,sha256=
|
|
3
|
+
keep/api.py,sha256=uckFZzeWMWcQ3osfcBdOhEDS58AbFtFTRPmrl1vo_Ko,64477
|
|
4
4
|
keep/chunking.py,sha256=neAXOLSvVwbUxapbqq7nZrbSNSzMXuhxj-ODoOSodsU,11830
|
|
5
|
-
keep/cli.py,sha256=
|
|
6
|
-
keep/config.py,sha256=
|
|
5
|
+
keep/cli.py,sha256=6IblpyqDcZlNK8S5VtdKTRFhjBcaXTpSSo3Au4wO0i0,44758
|
|
6
|
+
keep/config.py,sha256=hWjiJDg2u6p8IJpksXe0ngVxQNcKHKRFKUDJQBFlG7I,16226
|
|
7
7
|
keep/context.py,sha256=CNpjmrv6eW2kV1E0MO6qAQfhYKRlfzAL--6v4Mj1nFY,71
|
|
8
8
|
keep/document_store.py,sha256=UswqKIGSc5E-r7Tg9k0g5-byYnuar3e9FieQ7WNod9k,29109
|
|
9
9
|
keep/errors.py,sha256=G9e5FbdfeugyfHOuL_SPZlM5jgWWnwsX4hM7IzanBZc,857
|
|
@@ -12,13 +12,13 @@ keep/logging_config.py,sha256=IGwkgIyg-TfYaT4MnoCXfmjeHAe_wsB_XQ1QhVT_ro8,3503
|
|
|
12
12
|
keep/paths.py,sha256=Dv7pM6oo2QgjL6sj5wPjhuMOK2wqUkfd4Kz08TwJ1ps,3331
|
|
13
13
|
keep/pending_summaries.py,sha256=_irGe7P1Lmog2c5cEgx-BElpq4YJW-tEmF5A3IUZQbQ,5727
|
|
14
14
|
keep/store.py,sha256=SBc2QdTyApdDDVjm2uZQI6tGbV5Hurfetgj7dyTO65o,17881
|
|
15
|
-
keep/types.py,sha256=
|
|
15
|
+
keep/types.py,sha256=irvUJYUHQgQdVqC4_lgrG0FbTN1BdZqFxZr0ubVPSG4,2314
|
|
16
16
|
keep/data/__init__.py,sha256=C1YARrudHwK2Bmlxkh7dZlIaNJ5m5WrSTglCdG8e3T0,24
|
|
17
17
|
keep/data/system/__init__.py,sha256=Rp92_sBO3kscuWXJomo0HKeHfU-N4BgBeT3-5El0Mcg,28
|
|
18
18
|
keep/data/system/conversations.md,sha256=jE53wYSUyu5uPFNtO1Tu6w4f5QxqLei7muxLF_kZE2s,9837
|
|
19
19
|
keep/data/system/domains.md,sha256=OCRAGvB0EaphsEammxLmx7L-orw2OHzgF6GwAZ8ztUs,5556
|
|
20
|
-
keep/data/system/now.md,sha256=
|
|
21
|
-
keep/providers/__init__.py,sha256=
|
|
20
|
+
keep/data/system/now.md,sha256=0HbRikpHFhjrnjXqusEye3v-g_cF4AmgseiO-B33ANk,414
|
|
21
|
+
keep/providers/__init__.py,sha256=6AwJYc6cF1ZT6BcU_6ATyeWk7MHohdVU2-ccqDSvCHU,1094
|
|
22
22
|
keep/providers/base.py,sha256=7Ug4Kj9fK2Dq4zDcZjn-GKsoZBOAlB9b-FMk969ER-g,14590
|
|
23
23
|
keep/providers/documents.py,sha256=EXeSy5i3RUL0kciIC6w3ldAEfbTIyC5fgfzC_WAI0iY,8211
|
|
24
24
|
keep/providers/embedding_cache.py,sha256=gna6PZEJanbn2GUN0vj1b1MC0xVWePM9cot2KgZUdu8,8856
|
|
@@ -26,8 +26,8 @@ keep/providers/embeddings.py,sha256=zi8GyitKexdbCJyU1nLrUhGt_zzPn3udYrrPZ5Ak8Wo,
|
|
|
26
26
|
keep/providers/llm.py,sha256=BxROKOklKbkGsHcSADPNNgWQExgSN6Bg4KPQIxVuB3U,12441
|
|
27
27
|
keep/providers/mlx.py,sha256=aNl00r9tGi5tCGj2ArYH7CmDHtL1jLjVzb1rofU1DAo,9050
|
|
28
28
|
keep/providers/summarization.py,sha256=MlVTcYipaqp2lT-QYnznp0AMuPVG36QfcTQnvY7Gb-Q,3409
|
|
29
|
-
keep_skill-0.
|
|
30
|
-
keep_skill-0.
|
|
31
|
-
keep_skill-0.
|
|
32
|
-
keep_skill-0.
|
|
33
|
-
keep_skill-0.
|
|
29
|
+
keep_skill-0.7.0.dist-info/METADATA,sha256=aZx2pnN3i0BmOZzR8zYn49mRq1ZKq1-Cggc2FvqgYvs,6038
|
|
30
|
+
keep_skill-0.7.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
31
|
+
keep_skill-0.7.0.dist-info/entry_points.txt,sha256=W8yiI4kNeW0IC8ji4EHRWrvdhFxzaqTIePUhJAJAMOo,39
|
|
32
|
+
keep_skill-0.7.0.dist-info/licenses/LICENSE,sha256=zsm0tpvtyUkevcjn5BIvs9jAho8iwxq3Ax9647AaOSg,1086
|
|
33
|
+
keep_skill-0.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|