nooa-memory 0.0.7__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.
- nooa_memory-0.0.7/.gitignore +407 -0
- nooa_memory-0.0.7/PKG-INFO +31 -0
- nooa_memory-0.0.7/README.md +17 -0
- nooa_memory-0.0.7/pyproject.toml +46 -0
- nooa_memory-0.0.7/src/nooa_memory/README.md +450 -0
- nooa_memory-0.0.7/src/nooa_memory/__init__.py +144 -0
- nooa_memory-0.0.7/src/nooa_memory/config.py +202 -0
- nooa_memory-0.0.7/src/nooa_memory/descriptors.py +58 -0
- nooa_memory-0.0.7/src/nooa_memory/embeddings.py +145 -0
- nooa_memory-0.0.7/src/nooa_memory/forgetting.py +98 -0
- nooa_memory-0.0.7/src/nooa_memory/generative.py +205 -0
- nooa_memory-0.0.7/src/nooa_memory/manager.py +933 -0
- nooa_memory-0.0.7/src/nooa_memory/memory_skill/__init__.py +88 -0
- nooa_memory-0.0.7/src/nooa_memory/monitoring.py +120 -0
- nooa_memory-0.0.7/src/nooa_memory/observability.py +174 -0
- nooa_memory-0.0.7/src/nooa_memory/references.py +163 -0
- nooa_memory-0.0.7/src/nooa_memory/reflection.py +348 -0
- nooa_memory-0.0.7/src/nooa_memory/retrieval.py +369 -0
- nooa_memory-0.0.7/src/nooa_memory/schema.py +372 -0
- nooa_memory-0.0.7/src/nooa_memory/store.py +487 -0
- nooa_memory-0.0.7/src/nooa_memory/tracing_bridge.py +90 -0
- nooa_memory-0.0.7/src/nooa_memory/vector_backends.py +225 -0
- nooa_memory-0.0.7/tests/memory/test_background_reflect_and_hygiene.py +196 -0
- nooa_memory-0.0.7/tests/memory/test_memory_authoring.py +112 -0
- nooa_memory-0.0.7/tests/memory/test_memory_contract.py +161 -0
- nooa_memory-0.0.7/tests/memory/test_memory_embeddings.py +75 -0
- nooa_memory-0.0.7/tests/memory/test_memory_embeddings_integration.py +44 -0
- nooa_memory-0.0.7/tests/memory/test_memory_forgetting.py +137 -0
- nooa_memory-0.0.7/tests/memory/test_memory_generative.py +306 -0
- nooa_memory-0.0.7/tests/memory/test_memory_manager.py +268 -0
- nooa_memory-0.0.7/tests/memory/test_memory_monitoring.py +108 -0
- nooa_memory-0.0.7/tests/memory/test_memory_observability.py +298 -0
- nooa_memory-0.0.7/tests/memory/test_memory_owner.py +156 -0
- nooa_memory-0.0.7/tests/memory/test_memory_owner_roles.py +166 -0
- nooa_memory-0.0.7/tests/memory/test_memory_references.py +177 -0
- nooa_memory-0.0.7/tests/memory/test_memory_reflection.py +155 -0
- nooa_memory-0.0.7/tests/memory/test_memory_reflection_interrupt.py +219 -0
- nooa_memory-0.0.7/tests/memory/test_memory_retrieval.py +101 -0
- nooa_memory-0.0.7/tests/memory/test_memory_routes.py +396 -0
- nooa_memory-0.0.7/tests/memory/test_memory_schema.py +110 -0
- nooa_memory-0.0.7/tests/memory/test_memory_skill.py +78 -0
- nooa_memory-0.0.7/tests/memory/test_memory_store.py +134 -0
- nooa_memory-0.0.7/tests/memory/test_memory_store_v2.py +219 -0
- nooa_memory-0.0.7/tests/memory/test_memory_todo.py +226 -0
- nooa_memory-0.0.7/tests/memory/test_memory_vector_backends.py +166 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# Rust toolchain (installed for nemo_flow PyO3 build)
|
|
2
|
+
.cargo/
|
|
3
|
+
.rustup/
|
|
4
|
+
|
|
5
|
+
# Node.js dependencies (never commit)
|
|
6
|
+
node_modules/
|
|
7
|
+
|
|
8
|
+
# Byte-compiled / optimized / DLL files
|
|
9
|
+
__pycache__/
|
|
10
|
+
*.py[cod]
|
|
11
|
+
*$py.class
|
|
12
|
+
|
|
13
|
+
# C extensions
|
|
14
|
+
*.so
|
|
15
|
+
|
|
16
|
+
# Distribution / packaging
|
|
17
|
+
.Python
|
|
18
|
+
build/
|
|
19
|
+
develop-eggs/
|
|
20
|
+
dist/
|
|
21
|
+
!packages/nemo-oo-agents-viewer/frontend-react/dist/
|
|
22
|
+
!src/nooa/viewer/frontend-react/dist/
|
|
23
|
+
downloads/
|
|
24
|
+
eggs/
|
|
25
|
+
.eggs/
|
|
26
|
+
lib/
|
|
27
|
+
lib64/
|
|
28
|
+
# Exception: allow util/*/lib/ directories (our code, not build artifacts)
|
|
29
|
+
!util/*/lib/
|
|
30
|
+
!util/**/lib/
|
|
31
|
+
parts/
|
|
32
|
+
sdist/
|
|
33
|
+
var/
|
|
34
|
+
wheels/
|
|
35
|
+
pip-wheel-metadata/
|
|
36
|
+
share/python-wheels/
|
|
37
|
+
*.egg-info/
|
|
38
|
+
.installed.cfg
|
|
39
|
+
*.egg
|
|
40
|
+
MANIFEST
|
|
41
|
+
|
|
42
|
+
# PyInstaller
|
|
43
|
+
# Usually these files are written by a python script from a template
|
|
44
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
45
|
+
*.manifest
|
|
46
|
+
*.spec
|
|
47
|
+
|
|
48
|
+
# Installer logs
|
|
49
|
+
pip-log.txt
|
|
50
|
+
pip-delete-this-directory.txt
|
|
51
|
+
|
|
52
|
+
# Unit test / coverage reports
|
|
53
|
+
htmlcov/
|
|
54
|
+
.tox/
|
|
55
|
+
.nox/
|
|
56
|
+
.coverage
|
|
57
|
+
.coverage.*
|
|
58
|
+
.cache
|
|
59
|
+
nosetests.xml
|
|
60
|
+
coverage.xml
|
|
61
|
+
*.cover
|
|
62
|
+
*.py,cover
|
|
63
|
+
.hypothesis/
|
|
64
|
+
.pytest_cache/
|
|
65
|
+
|
|
66
|
+
# Translations
|
|
67
|
+
*.mo
|
|
68
|
+
*.pot
|
|
69
|
+
|
|
70
|
+
# Django stuff:
|
|
71
|
+
*.log
|
|
72
|
+
local_settings.py
|
|
73
|
+
db.sqlite3
|
|
74
|
+
db.sqlite3-journal
|
|
75
|
+
|
|
76
|
+
# Flask stuff:
|
|
77
|
+
instance/
|
|
78
|
+
.webassets-cache
|
|
79
|
+
|
|
80
|
+
# Scrapy stuff:
|
|
81
|
+
.scrapy
|
|
82
|
+
|
|
83
|
+
# Sphinx documentation
|
|
84
|
+
docs/_build/
|
|
85
|
+
|
|
86
|
+
# PyBuilder
|
|
87
|
+
target/
|
|
88
|
+
|
|
89
|
+
# Jupyter Notebook
|
|
90
|
+
.ipynb_checkpoints
|
|
91
|
+
|
|
92
|
+
# IPython
|
|
93
|
+
profile_default/
|
|
94
|
+
ipython_config.py
|
|
95
|
+
|
|
96
|
+
# pyenv
|
|
97
|
+
.python-version
|
|
98
|
+
|
|
99
|
+
# pipenv
|
|
100
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
101
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
102
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
103
|
+
# install all needed dependencies.
|
|
104
|
+
#Pipfile.lock
|
|
105
|
+
|
|
106
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
107
|
+
__pypackages__/
|
|
108
|
+
|
|
109
|
+
# Celery stuff
|
|
110
|
+
celerybeat-schedule
|
|
111
|
+
celerybeat.pid
|
|
112
|
+
|
|
113
|
+
# SageMath parsed files
|
|
114
|
+
*.sage.py
|
|
115
|
+
|
|
116
|
+
# Environments
|
|
117
|
+
.env
|
|
118
|
+
.env.*
|
|
119
|
+
!.env.example
|
|
120
|
+
!.env.template
|
|
121
|
+
.venv
|
|
122
|
+
.venv-macos
|
|
123
|
+
env/
|
|
124
|
+
venv/
|
|
125
|
+
ENV/
|
|
126
|
+
env.bak/
|
|
127
|
+
venv.bak/
|
|
128
|
+
|
|
129
|
+
# uv cache directory
|
|
130
|
+
.uv-cache/
|
|
131
|
+
|
|
132
|
+
# Spyder project settings
|
|
133
|
+
.spyderproject
|
|
134
|
+
.spyproject
|
|
135
|
+
|
|
136
|
+
# Rope project settings
|
|
137
|
+
.ropeproject
|
|
138
|
+
|
|
139
|
+
# mkdocs documentation
|
|
140
|
+
/site
|
|
141
|
+
|
|
142
|
+
# mypy
|
|
143
|
+
.mypy_cache/
|
|
144
|
+
.dmypy.json
|
|
145
|
+
dmypy.json
|
|
146
|
+
|
|
147
|
+
# Pyre type checker
|
|
148
|
+
.pyre/
|
|
149
|
+
|
|
150
|
+
# IDEs
|
|
151
|
+
.vscode/*
|
|
152
|
+
.vscode-server/*
|
|
153
|
+
.idea/*
|
|
154
|
+
*.swp
|
|
155
|
+
*.swo
|
|
156
|
+
|
|
157
|
+
# OS
|
|
158
|
+
.DS_Store
|
|
159
|
+
Thumbs.db
|
|
160
|
+
|
|
161
|
+
# Temporal
|
|
162
|
+
temporal/
|
|
163
|
+
.temporal/
|
|
164
|
+
|
|
165
|
+
# Custom
|
|
166
|
+
secrets.env
|
|
167
|
+
local_config.yaml
|
|
168
|
+
|
|
169
|
+
# Security: JWT tokens and API keys
|
|
170
|
+
**/test-nvauth.py
|
|
171
|
+
**/debug-auth*.py
|
|
172
|
+
# JWT token patterns (eyJ...)
|
|
173
|
+
eyJ*
|
|
174
|
+
|
|
175
|
+
# Third-party dependencies
|
|
176
|
+
3P/
|
|
177
|
+
3p/
|
|
178
|
+
|
|
179
|
+
# Trash folder for temporary files
|
|
180
|
+
trash/
|
|
181
|
+
|
|
182
|
+
# Tools directory (generated traces) - only root level
|
|
183
|
+
/tools/
|
|
184
|
+
|
|
185
|
+
# Agent trace files and results (root level)
|
|
186
|
+
/trace/
|
|
187
|
+
/traces/
|
|
188
|
+
/results/
|
|
189
|
+
trace*.json
|
|
190
|
+
!trace_viewer_config.json
|
|
191
|
+
/tmp/
|
|
192
|
+
|
|
193
|
+
# NVIDIA OO Agents generated trace and evaluation files (anywhere)
|
|
194
|
+
*.noo-eval.jsonl
|
|
195
|
+
*.006summary.json
|
|
196
|
+
# Exception: Allow trace fixtures for testing/eval
|
|
197
|
+
!evaluation/fixtures/**/*.noo-eval.jsonl
|
|
198
|
+
|
|
199
|
+
# Interface output markdown (experiment results)
|
|
200
|
+
docs/interface_output/
|
|
201
|
+
|
|
202
|
+
# Trace viewer config backups
|
|
203
|
+
**/trace_viewer_config.json.backup
|
|
204
|
+
|
|
205
|
+
# Local config overrides (user-specific, not tracked)
|
|
206
|
+
**/*.local.json
|
|
207
|
+
|
|
208
|
+
# Bridge watchpoint file (runtime job monitoring, not tracked)
|
|
209
|
+
.bridge_watch.json
|
|
210
|
+
|
|
211
|
+
# Slurm job output files (runtime artifacts, not tracked)
|
|
212
|
+
*.err
|
|
213
|
+
*.out
|
|
214
|
+
|
|
215
|
+
# Cursor IDE rules (keep local but don't track)
|
|
216
|
+
.cursorrules
|
|
217
|
+
|
|
218
|
+
# PDFs
|
|
219
|
+
*.pdf
|
|
220
|
+
packages/.venv/
|
|
221
|
+
|
|
222
|
+
# Experimental implementations (on experimental-implementations branch)
|
|
223
|
+
composer-packages/
|
|
224
|
+
gpt-packages/
|
|
225
|
+
trace_tui/
|
|
226
|
+
NEW_AGENT_TUI.md
|
|
227
|
+
RUN_NEW_AGENT_TUI.md
|
|
228
|
+
SETUP_QWEN_TUI.md
|
|
229
|
+
TUI_INTEGRATION_SUMMARY.md
|
|
230
|
+
run-new-tui.sh
|
|
231
|
+
test-tui-debug.py
|
|
232
|
+
test-tui.sh
|
|
233
|
+
scratch/ALIGNMENT_SUMMARY.md
|
|
234
|
+
scratch/DESIGN_ALIGNMENT_REPORT.md
|
|
235
|
+
packages/nemo_oo_agents-core/src/nemo_oo_agents/cli.py
|
|
236
|
+
packages/nemo_oo_agents-tui/src/nemo_oo_agents_tui/cli.py
|
|
237
|
+
|
|
238
|
+
# Prompt optimization experiment results
|
|
239
|
+
util/prompt-optimization/results/*.json
|
|
240
|
+
util/prompt-optimization/results/*.jsonl
|
|
241
|
+
util/prompt-optimization/results/*/*.json
|
|
242
|
+
util/prompt-optimization/results/*/*.jsonl
|
|
243
|
+
util/prompt-optimization/traces/
|
|
244
|
+
util/prompt-optimization/traces_test/
|
|
245
|
+
|
|
246
|
+
# Eval pipeline experiments and data
|
|
247
|
+
util/e2e_optimization/experiments/
|
|
248
|
+
util/e2e_optimization/src/e2e_optimization/examples/**/*.jsonl
|
|
249
|
+
util/e2e_optimization/src/e2e_optimization/examples/**/results/
|
|
250
|
+
# Exception: allow data_*.jsonl (test datasets)
|
|
251
|
+
!util/e2e_optimization/src/e2e_optimization/examples/**/data_*.jsonl
|
|
252
|
+
util/eval_pipeline/experiments/
|
|
253
|
+
|
|
254
|
+
# Experiment test result directories
|
|
255
|
+
experiments/tau_bench_test*/
|
|
256
|
+
experiments/**/results/
|
|
257
|
+
|
|
258
|
+
traces.db
|
|
259
|
+
traces.db-wal
|
|
260
|
+
traces.db-shm
|
|
261
|
+
# Large result files
|
|
262
|
+
experiments/**/results/
|
|
263
|
+
|
|
264
|
+
# Test files
|
|
265
|
+
test_arxiv_fetch.py
|
|
266
|
+
trigger_librarian_fetch.py
|
|
267
|
+
experiments/evaluation-ablations/*.db
|
|
268
|
+
experiments/evaluation-ablations/test_case_*/
|
|
269
|
+
experiments/evaluation-ablations/test.csv
|
|
270
|
+
experiments/evaluation-ablations/test.json
|
|
271
|
+
agents/**/traces/
|
|
272
|
+
|
|
273
|
+
# Claude Code settings (user-specific)
|
|
274
|
+
.claude/settings.json
|
|
275
|
+
|
|
276
|
+
# Claude Code runtime directories (cache, sessions, IDE state, plugins, skills)
|
|
277
|
+
.claude/backups/
|
|
278
|
+
.claude/history.jsonl
|
|
279
|
+
.claude/cache/
|
|
280
|
+
.claude/file-history/
|
|
281
|
+
.claude/ide/
|
|
282
|
+
.claude/plugins/
|
|
283
|
+
.claude/policy-limits.json
|
|
284
|
+
.claude/projects/
|
|
285
|
+
.claude/sessions/
|
|
286
|
+
.claude/shell-snapshots/
|
|
287
|
+
.claude.json
|
|
288
|
+
|
|
289
|
+
# Agent runtime directory
|
|
290
|
+
.agents/
|
|
291
|
+
|
|
292
|
+
# Shell history
|
|
293
|
+
.bash_history
|
|
294
|
+
|
|
295
|
+
# User-level XDG config/local dirs (injected by sandbox/environment)
|
|
296
|
+
.config/
|
|
297
|
+
.local/
|
|
298
|
+
|
|
299
|
+
# Rust toolchain (installed by rustup for nemo-flow build)
|
|
300
|
+
.cargo/
|
|
301
|
+
.rustup/
|
|
302
|
+
|
|
303
|
+
# VS Code Server (remote development runtime)
|
|
304
|
+
.vscode-server/
|
|
305
|
+
|
|
306
|
+
debug_http_logs/
|
|
307
|
+
|
|
308
|
+
# SWE-bench evaluation logs (generated during test runs)
|
|
309
|
+
**/logs/run_evaluation/
|
|
310
|
+
|
|
311
|
+
# Trace analyzer batch results
|
|
312
|
+
**/analysis_batch/
|
|
313
|
+
|
|
314
|
+
# Claude Code local settings (personal, not shared)
|
|
315
|
+
.claude/settings.local.json
|
|
316
|
+
.claude/agents
|
|
317
|
+
|
|
318
|
+
# Claude Code sandbox artifacts (created at runtime, not project files)
|
|
319
|
+
.srt-settings.json
|
|
320
|
+
# Debug handler dumps (written to cwd on SIGUSR2)
|
|
321
|
+
debug_dump_*.txt
|
|
322
|
+
# NeMo OO project directory (libraries, traces, config)
|
|
323
|
+
.nemo_oo/
|
|
324
|
+
.nooa/
|
|
325
|
+
.nemo_oo_agents/
|
|
326
|
+
# Shell config stubs (empty read-only files injected by sandbox)
|
|
327
|
+
.zshrc
|
|
328
|
+
.zprofile
|
|
329
|
+
.bash_profile
|
|
330
|
+
.bashrc
|
|
331
|
+
.profile
|
|
332
|
+
.gitconfig
|
|
333
|
+
.ripgreprc
|
|
334
|
+
.idea
|
|
335
|
+
.vscode
|
|
336
|
+
# Git internal stubs (root-level sandbox artifacts only)
|
|
337
|
+
/HEAD
|
|
338
|
+
/config
|
|
339
|
+
/hooks
|
|
340
|
+
/objects
|
|
341
|
+
/refs
|
|
342
|
+
# pytest temp directories
|
|
343
|
+
pytest-of-*/
|
|
344
|
+
experiments/evaluation-ablations/task_temp/
|
|
345
|
+
|
|
346
|
+
# DABStep experiment outputs (top-level scratch directory)
|
|
347
|
+
/dabstep/
|
|
348
|
+
|
|
349
|
+
# Harbor generated task directories (regenerated via `harbor adapter run`)
|
|
350
|
+
util/harbor/tasks/
|
|
351
|
+
|
|
352
|
+
# OpenSkills workspace files
|
|
353
|
+
.openskills/
|
|
354
|
+
|
|
355
|
+
# Local lockfile
|
|
356
|
+
prpm.lock
|
|
357
|
+
|
|
358
|
+
# Git worktrees
|
|
359
|
+
.worktrees/
|
|
360
|
+
worktrees/
|
|
361
|
+
|
|
362
|
+
# Bridge session ID file — written by slack bridge into each agent worktree root
|
|
363
|
+
.claude_session_id
|
|
364
|
+
|
|
365
|
+
sft_data/**/*.jsonl
|
|
366
|
+
|
|
367
|
+
# Git credentials (must not be committed)
|
|
368
|
+
.git-credentials
|
|
369
|
+
-e
|
|
370
|
+
# Bridge watchpoint file — per-worktree, never committed
|
|
371
|
+
.bridge_watch.json
|
|
372
|
+
|
|
373
|
+
.claude/backups
|
|
374
|
+
.claude/file-history
|
|
375
|
+
.claude/projects
|
|
376
|
+
.claude/shell-snapshots
|
|
377
|
+
.claude/telemetry
|
|
378
|
+
./claude/sessions
|
|
379
|
+
./claude/cache
|
|
380
|
+
./claude/plugins
|
|
381
|
+
|
|
382
|
+
.local/
|
|
383
|
+
.config/
|
|
384
|
+
util/harbor/tasks/terminal_bench/
|
|
385
|
+
|
|
386
|
+
# WTF skills (generated by wtf install-skills)
|
|
387
|
+
.claude/skills/wtf*
|
|
388
|
+
tests/integration/fixtures/*.db
|
|
389
|
+
tests/integration/fixtures/*.lock
|
|
390
|
+
|
|
391
|
+
# Worktree directories
|
|
392
|
+
.wt-*
|
|
393
|
+
|
|
394
|
+
# Throwaway benchmark smoke-test configs
|
|
395
|
+
util/harbor/tb1_opus_smoke.yaml
|
|
396
|
+
util/harbor/tb1_ultra_smoke.yaml
|
|
397
|
+
.claude/scheduled_tasks.lock
|
|
398
|
+
.commit_msg
|
|
399
|
+
|
|
400
|
+
# LoCoMo benchmark data (downloaded on demand, not vendored)
|
|
401
|
+
examples/memory_bench/data/
|
|
402
|
+
|
|
403
|
+
# Local scratch/working files (never commit)
|
|
404
|
+
.scratch/
|
|
405
|
+
|
|
406
|
+
# Claude Code local session dir (never commit)
|
|
407
|
+
.claude/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nooa-memory
|
|
3
|
+
Version: 0.0.7
|
|
4
|
+
Summary: Long-term memory system for NOOA agents — persistent recall backed by vector search
|
|
5
|
+
Project-URL: Homepage, https://github.com/NVIDIA-NeMo/labs-OO-Agents
|
|
6
|
+
Project-URL: Repository, https://github.com/NVIDIA-NeMo/labs-OO-Agents
|
|
7
|
+
Project-URL: Issues, https://github.com/NVIDIA-NeMo/labs-OO-Agents/issues
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
Requires-Python: <3.14,>=3.12
|
|
10
|
+
Requires-Dist: nooa
|
|
11
|
+
Requires-Dist: numpy>=1.24.0
|
|
12
|
+
Requires-Dist: pydantic>=2.5.0
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
|
|
15
|
+
# nooa-memory
|
|
16
|
+
|
|
17
|
+
Long-term memory subsystem for [NOOA](https://github.com/NVIDIA-NeMo/labs-OO-Agents)
|
|
18
|
+
agents. Installs the `nemo.memory` skill, which gives an agent persistent recall
|
|
19
|
+
across sessions backed by vector search.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv add nooa-memory
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The default vector backend is numpy-only (no extra dependencies). `sqlite-vec`
|
|
26
|
+
and `chromadb` backends are imported lazily if you install them yourself.
|
|
27
|
+
|
|
28
|
+
See the [main repository](https://github.com/NVIDIA-NeMo/labs-OO-Agents) for
|
|
29
|
+
documentation, and `examples/arc_agi_3` for a worked usage example.
|
|
30
|
+
|
|
31
|
+
Apache-2.0 licensed.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# nooa-memory
|
|
2
|
+
|
|
3
|
+
Long-term memory subsystem for [NOOA](https://github.com/NVIDIA-NeMo/labs-OO-Agents)
|
|
4
|
+
agents. Installs the `nemo.memory` skill, which gives an agent persistent recall
|
|
5
|
+
across sessions backed by vector search.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv add nooa-memory
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The default vector backend is numpy-only (no extra dependencies). `sqlite-vec`
|
|
12
|
+
and `chromadb` backends are imported lazily if you install them yourself.
|
|
13
|
+
|
|
14
|
+
See the [main repository](https://github.com/NVIDIA-NeMo/labs-OO-Agents) for
|
|
15
|
+
documentation, and `examples/arc_agi_3` for a worked usage example.
|
|
16
|
+
|
|
17
|
+
Apache-2.0 licensed.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "nooa-memory"
|
|
3
|
+
# Version is derived from git tags at build time by uv-dynamic-versioning.
|
|
4
|
+
dynamic = ["version"]
|
|
5
|
+
description = "Long-term memory system for NOOA agents — persistent recall backed by vector search"
|
|
6
|
+
license = {text = "Apache-2.0"}
|
|
7
|
+
readme = "README.md"
|
|
8
|
+
requires-python = ">=3.12,<3.14"
|
|
9
|
+
dependencies = [
|
|
10
|
+
"nooa",
|
|
11
|
+
"pydantic>=2.5.0",
|
|
12
|
+
"numpy>=1.24.0",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
# Optional ANN vector backends (sqlite-vec, chromadb) are imported lazily by
|
|
16
|
+
# vector_backends.py and deliberately NOT declared as an extra: `uv sync
|
|
17
|
+
# --all-extras` in CI would otherwise install the heavy chromadb stack that
|
|
18
|
+
# the numpy default backend makes unnecessary.
|
|
19
|
+
|
|
20
|
+
[project.urls]
|
|
21
|
+
Homepage = "https://github.com/NVIDIA-NeMo/labs-OO-Agents"
|
|
22
|
+
Repository = "https://github.com/NVIDIA-NeMo/labs-OO-Agents"
|
|
23
|
+
Issues = "https://github.com/NVIDIA-NeMo/labs-OO-Agents/issues"
|
|
24
|
+
|
|
25
|
+
[project.entry-points."nooa.skills"]
|
|
26
|
+
"nemo.memory" = "nooa_memory.memory_skill:MemorySkill"
|
|
27
|
+
|
|
28
|
+
[tool.uv.sources]
|
|
29
|
+
nooa = { workspace = true }
|
|
30
|
+
|
|
31
|
+
[build-system]
|
|
32
|
+
requires = ["hatchling>=1.26.0", "uv-dynamic-versioning>=0.14.0"]
|
|
33
|
+
build-backend = "hatchling.build"
|
|
34
|
+
|
|
35
|
+
[tool.hatch.version]
|
|
36
|
+
source = "uv-dynamic-versioning"
|
|
37
|
+
|
|
38
|
+
[tool.uv-dynamic-versioning]
|
|
39
|
+
vcs = "git"
|
|
40
|
+
style = "pep440"
|
|
41
|
+
bump = true
|
|
42
|
+
metadata = false
|
|
43
|
+
fallback-version = "0.0.6"
|
|
44
|
+
|
|
45
|
+
[tool.hatch.build.targets.wheel]
|
|
46
|
+
packages = ["src/nooa_memory"]
|