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.
Files changed (45) hide show
  1. nooa_memory-0.0.7/.gitignore +407 -0
  2. nooa_memory-0.0.7/PKG-INFO +31 -0
  3. nooa_memory-0.0.7/README.md +17 -0
  4. nooa_memory-0.0.7/pyproject.toml +46 -0
  5. nooa_memory-0.0.7/src/nooa_memory/README.md +450 -0
  6. nooa_memory-0.0.7/src/nooa_memory/__init__.py +144 -0
  7. nooa_memory-0.0.7/src/nooa_memory/config.py +202 -0
  8. nooa_memory-0.0.7/src/nooa_memory/descriptors.py +58 -0
  9. nooa_memory-0.0.7/src/nooa_memory/embeddings.py +145 -0
  10. nooa_memory-0.0.7/src/nooa_memory/forgetting.py +98 -0
  11. nooa_memory-0.0.7/src/nooa_memory/generative.py +205 -0
  12. nooa_memory-0.0.7/src/nooa_memory/manager.py +933 -0
  13. nooa_memory-0.0.7/src/nooa_memory/memory_skill/__init__.py +88 -0
  14. nooa_memory-0.0.7/src/nooa_memory/monitoring.py +120 -0
  15. nooa_memory-0.0.7/src/nooa_memory/observability.py +174 -0
  16. nooa_memory-0.0.7/src/nooa_memory/references.py +163 -0
  17. nooa_memory-0.0.7/src/nooa_memory/reflection.py +348 -0
  18. nooa_memory-0.0.7/src/nooa_memory/retrieval.py +369 -0
  19. nooa_memory-0.0.7/src/nooa_memory/schema.py +372 -0
  20. nooa_memory-0.0.7/src/nooa_memory/store.py +487 -0
  21. nooa_memory-0.0.7/src/nooa_memory/tracing_bridge.py +90 -0
  22. nooa_memory-0.0.7/src/nooa_memory/vector_backends.py +225 -0
  23. nooa_memory-0.0.7/tests/memory/test_background_reflect_and_hygiene.py +196 -0
  24. nooa_memory-0.0.7/tests/memory/test_memory_authoring.py +112 -0
  25. nooa_memory-0.0.7/tests/memory/test_memory_contract.py +161 -0
  26. nooa_memory-0.0.7/tests/memory/test_memory_embeddings.py +75 -0
  27. nooa_memory-0.0.7/tests/memory/test_memory_embeddings_integration.py +44 -0
  28. nooa_memory-0.0.7/tests/memory/test_memory_forgetting.py +137 -0
  29. nooa_memory-0.0.7/tests/memory/test_memory_generative.py +306 -0
  30. nooa_memory-0.0.7/tests/memory/test_memory_manager.py +268 -0
  31. nooa_memory-0.0.7/tests/memory/test_memory_monitoring.py +108 -0
  32. nooa_memory-0.0.7/tests/memory/test_memory_observability.py +298 -0
  33. nooa_memory-0.0.7/tests/memory/test_memory_owner.py +156 -0
  34. nooa_memory-0.0.7/tests/memory/test_memory_owner_roles.py +166 -0
  35. nooa_memory-0.0.7/tests/memory/test_memory_references.py +177 -0
  36. nooa_memory-0.0.7/tests/memory/test_memory_reflection.py +155 -0
  37. nooa_memory-0.0.7/tests/memory/test_memory_reflection_interrupt.py +219 -0
  38. nooa_memory-0.0.7/tests/memory/test_memory_retrieval.py +101 -0
  39. nooa_memory-0.0.7/tests/memory/test_memory_routes.py +396 -0
  40. nooa_memory-0.0.7/tests/memory/test_memory_schema.py +110 -0
  41. nooa_memory-0.0.7/tests/memory/test_memory_skill.py +78 -0
  42. nooa_memory-0.0.7/tests/memory/test_memory_store.py +134 -0
  43. nooa_memory-0.0.7/tests/memory/test_memory_store_v2.py +219 -0
  44. nooa_memory-0.0.7/tests/memory/test_memory_todo.py +226 -0
  45. 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"]