cuemap 0.2.1__tar.gz → 0.3.0__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 CueMap
3
+ Copyright (c) 2025 CueMap
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuemap
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Redis for AI Agents - High-performance temporal-associative memory
5
5
  Author-email: CueMap Team <hello@cuemap.dev>
6
6
  License: MIT
7
- Project-URL: Homepage, https://github.com/cuemap/cuemap
8
- Project-URL: Documentation, https://github.com/cuemap/cuemap#readme
9
- Project-URL: Repository, https://github.com/cuemap/cuemap
10
- Project-URL: Issues, https://github.com/cuemap/cuemap/issues
11
- Project-URL: Docker, https://hub.docker.com/r/cuemap/engine
7
+ Project-URL: Homepage, https://github.com/cuemap-dev/sdks
8
+ Project-URL: Documentation, https://github.com/cuemap-dev/sdks/blob/main/python/README.md
9
+ Project-URL: Repository, https://github.com/cuemap-dev/sdks
10
+ Project-URL: Issues, https://github.com/cuemap-dev/sdks/issues
11
+ Project-URL: Engine, https://github.com/cuemap-dev/engine
12
12
  Keywords: ai,memory,agents,redis,temporal,associative,llm,rag
13
13
  Classifier: Development Status :: 4 - Beta
14
14
  Classifier: Intended Audience :: Developers
@@ -136,7 +136,7 @@ results = client.recall(["food", "italian"])
136
136
  # Sushi is filtered out (only matches 1 cue)
137
137
  ```
138
138
 
139
- ### Performance
139
+ ### Performance (~1M memories)
140
140
 
141
141
  - **Write P99**: 0.33ms
142
142
  - **Read P99**: 0.37ms
@@ -230,20 +230,12 @@ docker run -p 8080:8080 cuemap/engine:latest
230
230
  ### Option 2: From Source
231
231
 
232
232
  ```bash
233
- git clone https://github.com/cuemap/cuemap
234
- cd cuemap/rust_engine
233
+ git clone https://github.com/cuemap-dev/engine
234
+ cd engine
235
235
  cargo build --release
236
236
  ./target/release/cuemap-rust --port 8080
237
237
  ```
238
238
 
239
- ### Option 3: Docker Compose
240
-
241
- ```bash
242
- git clone https://github.com/cuemap/cuemap
243
- cd cuemap
244
- docker-compose up -d
245
- ```
246
-
247
239
  ## Configuration
248
240
 
249
241
  ### Connect to Engine
@@ -323,10 +315,9 @@ async with AsyncCueMap() as client:
323
315
 
324
316
  ## Documentation
325
317
 
326
- - [GitHub Repository](https://github.com/cuemap/cuemap)
327
- - [Production Guide](https://github.com/cuemap/cuemap/blob/main/rust_engine/PRODUCTION.md)
328
- - [Docker Hub](https://hub.docker.com/r/cuemap/engine)
329
- - [Examples](https://github.com/cuemap/cuemap/tree/main/cuemap-sdk/examples)
318
+ - [Engine Repository](https://github.com/cuemap-dev/engine)
319
+ - [SDKs Repository](https://github.com/cuemap-dev/sdks)
320
+ - [Examples](https://github.com/cuemap-dev/sdks/tree/main/python/examples)
330
321
 
331
322
  ## License
332
323
 
@@ -101,7 +101,7 @@ results = client.recall(["food", "italian"])
101
101
  # Sushi is filtered out (only matches 1 cue)
102
102
  ```
103
103
 
104
- ### Performance
104
+ ### Performance (~1M memories)
105
105
 
106
106
  - **Write P99**: 0.33ms
107
107
  - **Read P99**: 0.37ms
@@ -195,20 +195,12 @@ docker run -p 8080:8080 cuemap/engine:latest
195
195
  ### Option 2: From Source
196
196
 
197
197
  ```bash
198
- git clone https://github.com/cuemap/cuemap
199
- cd cuemap/rust_engine
198
+ git clone https://github.com/cuemap-dev/engine
199
+ cd engine
200
200
  cargo build --release
201
201
  ./target/release/cuemap-rust --port 8080
202
202
  ```
203
203
 
204
- ### Option 3: Docker Compose
205
-
206
- ```bash
207
- git clone https://github.com/cuemap/cuemap
208
- cd cuemap
209
- docker-compose up -d
210
- ```
211
-
212
204
  ## Configuration
213
205
 
214
206
  ### Connect to Engine
@@ -288,10 +280,9 @@ async with AsyncCueMap() as client:
288
280
 
289
281
  ## Documentation
290
282
 
291
- - [GitHub Repository](https://github.com/cuemap/cuemap)
292
- - [Production Guide](https://github.com/cuemap/cuemap/blob/main/rust_engine/PRODUCTION.md)
293
- - [Docker Hub](https://hub.docker.com/r/cuemap/engine)
294
- - [Examples](https://github.com/cuemap/cuemap/tree/main/cuemap-sdk/examples)
283
+ - [Engine Repository](https://github.com/cuemap-dev/engine)
284
+ - [SDKs Repository](https://github.com/cuemap-dev/sdks)
285
+ - [Examples](https://github.com/cuemap-dev/sdks/tree/main/python/examples)
295
286
 
296
287
  ## License
297
288
 
@@ -48,14 +48,10 @@ class CueMap:
48
48
  """Get request headers."""
49
49
  headers = {}
50
50
  if self.api_key:
51
- headers["x-api-key"] = self.api_key
52
- return headers
53
-
54
- def _endpoint(self, path: str) -> str:
55
- """Get endpoint with optional project_id."""
51
+ headers["X-API-Key"] = self.api_key
56
52
  if self.project_id:
57
- return f"/v1/{self.project_id}{path}"
58
- return path
53
+ headers["X-Project-ID"] = self.project_id
54
+ return headers
59
55
 
60
56
  def add(
61
57
  self,
@@ -81,7 +77,7 @@ class CueMap:
81
77
  ... )
82
78
  """
83
79
  response = self.client.post(
84
- self._endpoint("/memories"),
80
+ "/memories",
85
81
  json={
86
82
  "content": content,
87
83
  "cues": cues,
@@ -120,7 +116,7 @@ class CueMap:
120
116
  ... print(r.content)
121
117
  """
122
118
  response = self.client.post(
123
- self._endpoint("/recall"),
119
+ "/recall",
124
120
  json={
125
121
  "cues": cues,
126
122
  "limit": limit,
@@ -147,7 +143,7 @@ class CueMap:
147
143
  Success status
148
144
  """
149
145
  response = self.client.patch(
150
- self._endpoint(f"/memories/{memory_id}/reinforce"),
146
+ f"/memories/{memory_id}/reinforce",
151
147
  json={"cues": cues},
152
148
  headers=self._headers()
153
149
  )
@@ -157,7 +153,7 @@ class CueMap:
157
153
  def get(self, memory_id: str) -> Memory:
158
154
  """Get a memory by ID."""
159
155
  response = self.client.get(
160
- self._endpoint(f"/memories/{memory_id}"),
156
+ f"/memories/{memory_id}",
161
157
  headers=self._headers()
162
158
  )
163
159
 
@@ -171,7 +167,7 @@ class CueMap:
171
167
  def stats(self) -> Dict[str, Any]:
172
168
  """Get server statistics."""
173
169
  response = self.client.get(
174
- self._endpoint("/stats"),
170
+ "/stats",
175
171
  headers=self._headers()
176
172
  )
177
173
 
@@ -217,13 +213,10 @@ class AsyncCueMap:
217
213
  def _headers(self) -> Dict[str, str]:
218
214
  headers = {}
219
215
  if self.api_key:
220
- headers["x-api-key"] = self.api_key
221
- return headers
222
-
223
- def _endpoint(self, path: str) -> str:
216
+ headers["X-API-Key"] = self.api_key
224
217
  if self.project_id:
225
- return f"/v1/{self.project_id}{path}"
226
- return path
218
+ headers["X-Project-ID"] = self.project_id
219
+ return headers
227
220
 
228
221
  async def add(
229
222
  self,
@@ -233,7 +226,7 @@ class AsyncCueMap:
233
226
  ) -> str:
234
227
  """Add a memory (async)."""
235
228
  response = await self.client.post(
236
- self._endpoint("/memories"),
229
+ "/memories",
237
230
  json={
238
231
  "content": content,
239
232
  "cues": cues,
@@ -257,7 +250,7 @@ class AsyncCueMap:
257
250
  ) -> List[RecallResult]:
258
251
  """Recall memories (async)."""
259
252
  response = await self.client.post(
260
- self._endpoint("/recall"),
253
+ "/recall",
261
254
  json={
262
255
  "cues": cues,
263
256
  "limit": limit,
@@ -275,7 +268,7 @@ class AsyncCueMap:
275
268
  async def reinforce(self, memory_id: str, cues: List[str]) -> bool:
276
269
  """Reinforce a memory (async)."""
277
270
  response = await self.client.patch(
278
- self._endpoint(f"/memories/{memory_id}/reinforce"),
271
+ f"/memories/{memory_id}/reinforce",
279
272
  json={"cues": cues},
280
273
  headers=self._headers()
281
274
  )
@@ -285,7 +278,7 @@ class AsyncCueMap:
285
278
  async def get(self, memory_id: str) -> Memory:
286
279
  """Get a memory by ID (async)."""
287
280
  response = await self.client.get(
288
- self._endpoint(f"/memories/{memory_id}"),
281
+ f"/memories/{memory_id}",
289
282
  headers=self._headers()
290
283
  )
291
284
 
@@ -299,7 +292,7 @@ class AsyncCueMap:
299
292
  async def stats(self) -> Dict[str, Any]:
300
293
  """Get server statistics (async)."""
301
294
  response = await self.client.get(
302
- self._endpoint("/stats"),
295
+ "/stats",
303
296
  headers=self._headers()
304
297
  )
305
298
 
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuemap
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Redis for AI Agents - High-performance temporal-associative memory
5
5
  Author-email: CueMap Team <hello@cuemap.dev>
6
6
  License: MIT
7
- Project-URL: Homepage, https://github.com/cuemap/cuemap
8
- Project-URL: Documentation, https://github.com/cuemap/cuemap#readme
9
- Project-URL: Repository, https://github.com/cuemap/cuemap
10
- Project-URL: Issues, https://github.com/cuemap/cuemap/issues
11
- Project-URL: Docker, https://hub.docker.com/r/cuemap/engine
7
+ Project-URL: Homepage, https://github.com/cuemap-dev/sdks
8
+ Project-URL: Documentation, https://github.com/cuemap-dev/sdks/blob/main/python/README.md
9
+ Project-URL: Repository, https://github.com/cuemap-dev/sdks
10
+ Project-URL: Issues, https://github.com/cuemap-dev/sdks/issues
11
+ Project-URL: Engine, https://github.com/cuemap-dev/engine
12
12
  Keywords: ai,memory,agents,redis,temporal,associative,llm,rag
13
13
  Classifier: Development Status :: 4 - Beta
14
14
  Classifier: Intended Audience :: Developers
@@ -136,7 +136,7 @@ results = client.recall(["food", "italian"])
136
136
  # Sushi is filtered out (only matches 1 cue)
137
137
  ```
138
138
 
139
- ### Performance
139
+ ### Performance (~1M memories)
140
140
 
141
141
  - **Write P99**: 0.33ms
142
142
  - **Read P99**: 0.37ms
@@ -230,20 +230,12 @@ docker run -p 8080:8080 cuemap/engine:latest
230
230
  ### Option 2: From Source
231
231
 
232
232
  ```bash
233
- git clone https://github.com/cuemap/cuemap
234
- cd cuemap/rust_engine
233
+ git clone https://github.com/cuemap-dev/engine
234
+ cd engine
235
235
  cargo build --release
236
236
  ./target/release/cuemap-rust --port 8080
237
237
  ```
238
238
 
239
- ### Option 3: Docker Compose
240
-
241
- ```bash
242
- git clone https://github.com/cuemap/cuemap
243
- cd cuemap
244
- docker-compose up -d
245
- ```
246
-
247
239
  ## Configuration
248
240
 
249
241
  ### Connect to Engine
@@ -323,10 +315,9 @@ async with AsyncCueMap() as client:
323
315
 
324
316
  ## Documentation
325
317
 
326
- - [GitHub Repository](https://github.com/cuemap/cuemap)
327
- - [Production Guide](https://github.com/cuemap/cuemap/blob/main/rust_engine/PRODUCTION.md)
328
- - [Docker Hub](https://hub.docker.com/r/cuemap/engine)
329
- - [Examples](https://github.com/cuemap/cuemap/tree/main/cuemap-sdk/examples)
318
+ - [Engine Repository](https://github.com/cuemap-dev/engine)
319
+ - [SDKs Repository](https://github.com/cuemap-dev/sdks)
320
+ - [Examples](https://github.com/cuemap-dev/sdks/tree/main/python/examples)
330
321
 
331
322
  ## License
332
323
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cuemap"
7
- version = "0.2.1"
7
+ version = "0.3.0"
8
8
  description = "Redis for AI Agents - High-performance temporal-associative memory"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -41,8 +41,8 @@ dev = [
41
41
  ]
42
42
 
43
43
  [project.urls]
44
- Homepage = "https://github.com/cuemap/cuemap"
45
- Documentation = "https://github.com/cuemap/cuemap#readme"
46
- Repository = "https://github.com/cuemap/cuemap"
47
- Issues = "https://github.com/cuemap/cuemap/issues"
48
- Docker = "https://hub.docker.com/r/cuemap/engine"
44
+ Homepage = "https://github.com/cuemap-dev/sdks"
45
+ Documentation = "https://github.com/cuemap-dev/sdks/blob/main/python/README.md"
46
+ Repository = "https://github.com/cuemap-dev/sdks"
47
+ Issues = "https://github.com/cuemap-dev/sdks/issues"
48
+ Engine = "https://github.com/cuemap-dev/engine"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes