luminary-memory 0.3.3__tar.gz → 0.3.4__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.
- luminary_memory-0.3.4/.mailmap +1 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/CHANGELOG.md +35 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/PKG-INFO +10 -5
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/README.md +9 -4
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/docs/agent-integrations.md +97 -31
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/package-lock.json +3 -3
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/omp/README.md +3 -5
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/omp/package.json +1 -1
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/opencode/README.md +8 -10
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/opencode/package.json +1 -1
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/pi/README.md +3 -5
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/pi/package.json +1 -1
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/pyproject.toml +1 -1
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/__init__.py +1 -1
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/backends/base.py +27 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/backends/inspector.py +67 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/config.py +7 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/plugin.yaml +2 -2
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/__init__.py +104 -16
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/omp/index.js +2 -2
- luminary_memory-0.3.4/src/luminary_memory/integrations/assets/compiled/opencode/index.js +1 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/pi/index.js +2 -2
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/omp/luminary.ts +29 -12
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/opencode/luminary-memory.ts +20 -10
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/pi/luminary.ts +29 -12
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/lifecycle/runner.py +24 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_inspector_process.py +3 -0
- luminary_memory-0.3.4/tests/plugins/context.test.mjs +457 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_agent_integrations.py +230 -3
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_backend_sqlite.py +62 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_lifecycle.py +41 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/docs.html +2 -2
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/index.html +2 -2
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/js/docs-guides.js +1 -1
- luminary_memory-0.3.3/src/luminary_memory/integrations/assets/compiled/opencode/index.js +0 -1
- luminary_memory-0.3.3/tests/plugins/context.test.mjs +0 -123
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/workflows/ci.yml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/workflows/contributor-check.yml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/workflows/pages.yml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/workflows/publish.yml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/workflows/stale.yml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.github/workflows/triage.yml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/.gitignore +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/AGENTS.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/CODE_OF_CONDUCT.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/CONTRIBUTING.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/DESIGN.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/LICENSE +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/PRODUCT.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/SECURITY.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/README.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/RESULTS.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/baselines/README.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/baselines/gold-real-v1.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/baselines/gold-real-v2.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/baselines/gold-real-v3.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/build_gold_extended.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/gold.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/gold_extended.jsonl +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/gold_micro.jsonl +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/hermes_provider_bench.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/metrics.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/run_benchmarks.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/benchmarks/synthetic.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hatch_build.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/README.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/SKILL.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/hooks/luminary-activity/HOOK.yaml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/hooks/luminary-activity/README.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/hooks/luminary-activity/handler.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/install.sh +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/hermes/test.sh +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/opencode/SKILL.md +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/package.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/hermes/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/hermes/dashboard/manifest.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/hermes/dashboard/plugin_api.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/hermes/desktop/plugin.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/plugins/hermes/plugin.yaml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/build-plugins.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/build-uis.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/bump-version.sh +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/check-opencode-types.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/opencode-gui.vite.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/pack-plugins.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/repair_memory_authority.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/smoke-real-model.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/soak-test.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/test-hermes-sdk.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/scripts/test-installed-inspector.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/api.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/backends/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/backends/inspector_features.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/backends/pgvector.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/backends/sqlite.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/budget.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/cli.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/embeddings/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/embeddings/fastembed.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/export.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/activation.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/activity.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/cli.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/config.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/config_schema.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/inspector.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/inspector_settings.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/hermes/provider.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/ingest/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/ingest/llm.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/ingest/rules.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/ingest/whitelist.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/activity.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/assets/browser/app.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/assets/browser/index.html +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/assets/browser/style.css +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/authorization.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/contracts.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/explanations.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/features.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/identity.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/mutations.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/queries.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/service.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/settings.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/summary.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/transfer.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/inspector/web.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/__main__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/common/bridge-source.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/common/console-actions.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/common/console-contract.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/common/console-controller.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/common/inspector-transport.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/common/terminal-view.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/hermes/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/hermes/dashboard/dist/index.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/hermes/dashboard/manifest.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/hermes/dashboard/plugin_api.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/hermes/desktop/plugin.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/hermes/plugin.yaml +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/opencode/gui-experimental.cjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/opencode/rpc.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/compiled/opencode/tui.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/omp/inspector.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/opencode/dialogs.tsx +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/opencode/gui.tsx +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/opencode/package.json +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/opencode/rpc.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/opencode/tui.tsx +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/assets/pi/inspector.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/cli.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/integrations/inspector_cli.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/lifecycle/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/lifecycle/cleanup.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/lifecycle/consolidate.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/lifecycle/importance.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/lifecycle/prune.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/dedup.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/filters.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/fusion.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/graph.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/keyword.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/planner.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/semantic.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/snippets.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/recall/temporal.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/schema.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/scope.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/src/luminary_memory/types.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/__init__.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/conftest.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/conftest.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_activation.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_activity_hook.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_authority_lifecycle.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_autonomous_review.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_backup_paths.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_cli_owner_commands.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_config.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_context_continuity.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_core_memory.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_entrypoint.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_hooks.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_inspector_api.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_inspector_settings.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_lifecycle.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_long_term_stability.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_native_contract.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_native_execution.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_pre_compress.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_provider_context.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_provider_import.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_recall.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_recall_smartness.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_session_boundaries.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_session_resolution.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_sync_turn.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_system_prompt.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_tools.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/test_transparency_log.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes/ui.test.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/hermes_stubs/agent/memory_provider.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/conftest.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_activity.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_embedded_service.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_explanations.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_identity.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_mutations.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_permissions.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_queries.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_relations.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_settings.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_summary.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_transfer.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_transport.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_web.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/inspector/test_web_transport.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/plugins/packages.test.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_accuracy_safety.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_api.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_api_extended.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_backend_contract.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_backend_pgvector.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_budget.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_cli.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_config_file.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_dedup_jaccard.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_embeddings.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_fusion.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_fusion_rrf.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_gold_benchmark.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_importance.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_ingest_llm.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_ingest_whitelist.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_integration_cli.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_llm_enricher.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_long_term_stability.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_memory_authority_migration.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_query_expansion.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_recall_adaptive.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_recall_graph.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_recall_keyword.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_recall_orchestrator.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_recall_semantic.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_recall_temporal.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_schema.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_scope_boundaries.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_soak_behaviour.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_strict_recall_calibration.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t10_export.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t11_limit_zero.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t3_planner.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t4_batch.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t5_enricher.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t6_tag_scoped.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t7_updated_at.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t8_snippets.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_t9_cli_json.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/test_validity_window.py +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/ui/controller.test.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/tests/ui/installed-consumer.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/ui/browser/app.ts +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/ui/hermes/console.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/ui/hermes/dashboard.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/ui/hermes/desktop.mjs +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/.nojekyll +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/assets/full-moon.jpg +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/css/docs.css +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/css/luminary.css +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/js/docs-content.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/js/docs-page.js +0 -0
- {luminary_memory-0.3.3 → luminary_memory-0.3.4}/website/js/luminary.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
alertxsto <alertxsto@users.noreply.github.com> OpenAI Codex <noreply@openai.com>
|
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
## [0.3.4] - 2026-11-14
|
|
6
|
+
|
|
7
|
+
Coordinated Python and native-plugin release from one source revision.
|
|
8
|
+
This replaces the mismatched npm `0.3.3` builds without overwriting them.
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Isolate the inspector's default-store test from the operator's home on
|
|
13
|
+
Windows by setting `USERPROFILE` as well as `HOME`.
|
|
14
|
+
- Native core memory is now a separate, query-independent DB-backed baseline
|
|
15
|
+
loaded through the bridge's new `core` action, which takes no query. Query
|
|
16
|
+
recall stays pure evidence: it removes rows already present in the loaded
|
|
17
|
+
baseline and returns `abstain` with `matches_already_in_core` when only core
|
|
18
|
+
rows matched, instead of reporting them as a successful query result. The
|
|
19
|
+
OpenCode, pi, and omp adapters refresh their own marked request-local baseline
|
|
20
|
+
each admitted user run, so explicit remember/forget/retraction becomes visible
|
|
21
|
+
without a session restart and repeated turns do not append duplicate
|
|
22
|
+
transcript entries. Core and recall keep separate row and character budgets,
|
|
23
|
+
rows are serialized once without adapters slicing or double-encoding them, and
|
|
24
|
+
empty or failed recall injects no model-bound context or status payload.
|
|
25
|
+
Baseline loading remains disabled by `LUMINARY_CORE_TOP_N=0`.
|
|
26
|
+
- Long-lived stores now bound their append-only ledgers. `run_lifecycle()`
|
|
27
|
+
keeps the newest scoped rows for episodes (`LUMINARY_EPISODE_MAX_ROWS`,
|
|
28
|
+
default 10,000), audit events (`LUMINARY_EVENT_MAX_ROWS`, default 50,000),
|
|
29
|
+
and evidence (`LUMINARY_EVIDENCE_MAX_ROWS`, default 50,000); `0` disables a
|
|
30
|
+
ledger's pruning. Current-session continuity and recent audit remain intact.
|
|
31
|
+
|
|
3
32
|
## [0.3.3] - 2026-11-10
|
|
4
33
|
|
|
5
34
|
Interactive memory inspection, explicit owner controls and safer native recall.
|
|
@@ -16,6 +45,12 @@ companion; the interactive UI roadmap is incomplete.
|
|
|
16
45
|
|
|
17
46
|
### Added
|
|
18
47
|
|
|
48
|
+
- Published the Python bridge and all three native npm packages at `0.3.3`.
|
|
49
|
+
The npm packages were published later from `develop`, not the `v0.3.3`
|
|
50
|
+
tag, and their built entry points differ from the downloadable release
|
|
51
|
+
tarballs. Matching version numbers do not establish compatibility or
|
|
52
|
+
identical provenance. Use the tagged GitHub tarballs with Python `0.3.3`
|
|
53
|
+
until a coordinated replacement release is available.
|
|
19
54
|
- Optional operator config file (`~/.luminary/luminary.env`) shared by native
|
|
20
55
|
integrations and the CLI. Env-style `LUMINARY_*` settings load before
|
|
21
56
|
`Settings` is constructed; process environment wins, `LUMINARY_CONFIG_FILE`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: luminary-memory
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: A lightweight, self-hosted memory layer for AI agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/alertxsto/luminary-memory
|
|
6
6
|
Project-URL: Repository, https://github.com/alertxsto/luminary-memory
|
|
@@ -118,8 +118,8 @@ at [`opencode/SKILL.md`](opencode/SKILL.md); install it under
|
|
|
118
118
|
|
|
119
119
|
The `0.3.3` source includes native interactive inspectors for the verified
|
|
120
120
|
surfaces: OpenCode CLI/Desktop, pi and omp, Hermes Desktop/dashboard and an
|
|
121
|
-
explicitly launched loopback companion. The `0.3.
|
|
122
|
-
|
|
121
|
+
explicitly launched loopback companion. The `0.3.3` registry packages include
|
|
122
|
+
the inspector; see the installation guide for current availability.
|
|
123
123
|
Two native targets remain blocked on upstream
|
|
124
124
|
contracts and are recorded in the roadmap: OpenCode Web GUI contribution
|
|
125
125
|
discovery and Hermes terminal/TUI authority plus scope lifecycle. See
|
|
@@ -146,8 +146,10 @@ The three installable tarballs are written to `artifacts/plugins/`. Set
|
|
|
146
146
|
Choose the native package **or** the copied hook, never both.
|
|
147
147
|
|
|
148
148
|
Registry names are `luminary-memory-pi`, `luminary-memory-opencode`, and
|
|
149
|
-
`luminary-memory-omp`.
|
|
150
|
-
|
|
149
|
+
`luminary-memory-omp`. Use version-matched Python and plugin artifacts from
|
|
150
|
+
the same tagged release. The npm `0.3.3` builds were published from a later
|
|
151
|
+
`develop` revision and differ from the `v0.3.3` GitHub tarballs; use those
|
|
152
|
+
tagged tarballs with Python `0.3.3`, not the npm builds.
|
|
151
153
|
The pi manifest includes `pi-package` for eligibility in the
|
|
152
154
|
[official package catalog](https://pi.dev/packages). OpenCode's existing
|
|
153
155
|
Ecosystem PR targets legacy V1 docs, not a verified V2 listing; no V2 website
|
|
@@ -244,6 +246,9 @@ Every setting has a `LUMINARY_*` env var or a `Settings` object.
|
|
|
244
246
|
| `dedup_jaccard_threshold` | `LUMINARY_DEDUP_JACCARD_THRESHOLD` | `0.85` |
|
|
245
247
|
| `token_budget` | `LUMINARY_TOKEN_BUDGET` | `4096` |
|
|
246
248
|
| `max_memories` | `LUMINARY_MAX_MEMORIES` | `1000` |
|
|
249
|
+
| `episode_max_rows` | `LUMINARY_EPISODE_MAX_ROWS` | `10000` |
|
|
250
|
+
| `event_max_rows` | `LUMINARY_EVENT_MAX_ROWS` | `50000` |
|
|
251
|
+
| `evidence_max_rows` | `LUMINARY_EVIDENCE_MAX_ROWS` | `50000` |
|
|
247
252
|
| `ttl_default_seconds` | `LUMINARY_TTL_DEFAULT_SECONDS` | `null` |
|
|
248
253
|
| `prune_min_importance` | `LUMINARY_PRUNE_MIN_IMPORTANCE` | `0.2` |
|
|
249
254
|
| `consolidate_jaccard_threshold` | `LUMINARY_CONSOLIDATE_JACCARD_THRESHOLD` | `0.9` |
|
|
@@ -83,8 +83,8 @@ at [`opencode/SKILL.md`](opencode/SKILL.md); install it under
|
|
|
83
83
|
|
|
84
84
|
The `0.3.3` source includes native interactive inspectors for the verified
|
|
85
85
|
surfaces: OpenCode CLI/Desktop, pi and omp, Hermes Desktop/dashboard and an
|
|
86
|
-
explicitly launched loopback companion. The `0.3.
|
|
87
|
-
|
|
86
|
+
explicitly launched loopback companion. The `0.3.3` registry packages include
|
|
87
|
+
the inspector; see the installation guide for current availability.
|
|
88
88
|
Two native targets remain blocked on upstream
|
|
89
89
|
contracts and are recorded in the roadmap: OpenCode Web GUI contribution
|
|
90
90
|
discovery and Hermes terminal/TUI authority plus scope lifecycle. See
|
|
@@ -111,8 +111,10 @@ The three installable tarballs are written to `artifacts/plugins/`. Set
|
|
|
111
111
|
Choose the native package **or** the copied hook, never both.
|
|
112
112
|
|
|
113
113
|
Registry names are `luminary-memory-pi`, `luminary-memory-opencode`, and
|
|
114
|
-
`luminary-memory-omp`.
|
|
115
|
-
|
|
114
|
+
`luminary-memory-omp`. Use version-matched Python and plugin artifacts from
|
|
115
|
+
the same tagged release. The npm `0.3.3` builds were published from a later
|
|
116
|
+
`develop` revision and differ from the `v0.3.3` GitHub tarballs; use those
|
|
117
|
+
tagged tarballs with Python `0.3.3`, not the npm builds.
|
|
116
118
|
The pi manifest includes `pi-package` for eligibility in the
|
|
117
119
|
[official package catalog](https://pi.dev/packages). OpenCode's existing
|
|
118
120
|
Ecosystem PR targets legacy V1 docs, not a verified V2 listing; no V2 website
|
|
@@ -209,6 +211,9 @@ Every setting has a `LUMINARY_*` env var or a `Settings` object.
|
|
|
209
211
|
| `dedup_jaccard_threshold` | `LUMINARY_DEDUP_JACCARD_THRESHOLD` | `0.85` |
|
|
210
212
|
| `token_budget` | `LUMINARY_TOKEN_BUDGET` | `4096` |
|
|
211
213
|
| `max_memories` | `LUMINARY_MAX_MEMORIES` | `1000` |
|
|
214
|
+
| `episode_max_rows` | `LUMINARY_EPISODE_MAX_ROWS` | `10000` |
|
|
215
|
+
| `event_max_rows` | `LUMINARY_EVENT_MAX_ROWS` | `50000` |
|
|
216
|
+
| `evidence_max_rows` | `LUMINARY_EVIDENCE_MAX_ROWS` | `50000` |
|
|
212
217
|
| `ttl_default_seconds` | `LUMINARY_TTL_DEFAULT_SECONDS` | `null` |
|
|
213
218
|
| `prune_min_importance` | `LUMINARY_PRUNE_MIN_IMPORTANCE` | `0.2` |
|
|
214
219
|
| `consolidate_jaccard_threshold` | `LUMINARY_CONSOLIDATE_JACCARD_THRESHOLD` | `0.9` |
|
|
@@ -8,9 +8,9 @@ continues to use its public `MemoryProvider` lifecycle.
|
|
|
8
8
|
| Adapter | Contract | Interaction surface |
|
|
9
9
|
| --- | --- | --- |
|
|
10
10
|
| Hermes | Public `MemoryProvider`, existing installer | Provider tools/status in supported Hermes clients; read-only scoped Telegram activity hook |
|
|
11
|
-
| OpenCode V2 | `@opencode/cli` and `@opencode/plugin` 2.1.4, `Plugin.define` server API | Native tools/progress/results in connected clients; automatic recall and curated retention |
|
|
12
|
-
| pi | Extension API verified against `@earendil-works/pi-coding-agent` 1.4.0 | `/luminary`, model tool, TUI dialogs/status, serializable session messages for RPC consumers |
|
|
13
|
-
| omp | Extension API verified against v18.12.6; installed **18.18.5** acceptance re-verified | `/luminary`, model tool, TUI dialogs/status, serializable session messages for RPC consumers |
|
|
11
|
+
| OpenCode V2 | `@opencode/cli` and `@opencode/plugin` 2.1.4, `Plugin.define` server API | Native tools/progress/results in connected clients; core baseline, automatic recall, and curated retention |
|
|
12
|
+
| pi | Extension API verified against `@earendil-works/pi-coding-agent` 1.4.0 | `/luminary`, model tool, TUI dialogs/status, core baseline and automatic recall, serializable session messages for RPC consumers |
|
|
13
|
+
| omp | Extension API verified against v18.12.6; installed **18.18.5** acceptance re-verified | `/luminary`, model tool, TUI dialogs/status, core baseline and automatic recall, serializable session messages for RPC consumers |
|
|
14
14
|
|
|
15
15
|
OpenCode V2 uses the plural `plugins` config, a default `Plugin.define` export,
|
|
16
16
|
and Promise domain APIs. The older Luminary npm `0.3.1` adapter targets V1;
|
|
@@ -25,13 +25,15 @@ and omp. That means ownership by this project, not endorsement or listing
|
|
|
25
25
|
approval by the harness maintainers. All three compile the canonical adapter
|
|
26
26
|
source under `src/luminary_memory/integrations/assets/`; no second memory engine
|
|
27
27
|
or separate adapter fork is maintained.
|
|
28
|
-
Python and all three native npm packages
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Python and all three native npm packages list `0.3.3`, but the later npm
|
|
29
|
+
builds differ from the tagged GitHub tarballs. Use those tagged tarballs
|
|
30
|
+
with Python `0.3.3` until a coordinated replacement is published.
|
|
31
|
+
The OpenCode adapter targets V2; the older npm `0.3.1` adapter is V1-only.
|
|
32
|
+
Install the Python bridge into the environment
|
|
31
33
|
the host will use:
|
|
32
34
|
|
|
33
35
|
```bash
|
|
34
|
-
python -m pip install --upgrade "luminary-memory==0.3.
|
|
36
|
+
python -m pip install --upgrade "luminary-memory==0.3.3"
|
|
35
37
|
export LUMINARY_PYTHON=/absolute/venv/bin/python
|
|
36
38
|
```
|
|
37
39
|
|
|
@@ -63,7 +65,7 @@ path. No package install hook silently installs Python dependencies.
|
|
|
63
65
|
| --- | --- | --- |
|
|
64
66
|
| pi | `pi install /absolute/repo/plugins/pi` | `pi install npm:luminary-memory-pi` |
|
|
65
67
|
| omp | `omp plugin link /absolute/repo/plugins/omp` | `omp plugin install luminary-memory-omp` |
|
|
66
|
-
| OpenCode V2 | `{"plugins":["/absolute/repo/plugins/opencode/dist"]}`; configured local paths must be directories | `opencode plugin add luminary-memory-opencode@0.3.
|
|
68
|
+
| OpenCode V2 | `{"plugins":["/absolute/repo/plugins/opencode/dist"]}`; configured local paths must be directories | `opencode plugin add luminary-memory-opencode@0.3.3`, or `{"plugins":["luminary-memory-opencode@0.3.3"]}` |
|
|
67
69
|
|
|
68
70
|
Local pi/omp packages load in place, so keep the installed directory. An
|
|
69
71
|
extracted tarball works independently of this repository. See the host READMEs
|
|
@@ -110,12 +112,21 @@ The first publication requires maintainer npm authorization. Use
|
|
|
110
112
|
the next coordinated release; do not overwrite an already-published Python tag.
|
|
111
113
|
See [contributor release instructions](../CONTRIBUTING.md).
|
|
112
114
|
|
|
113
|
-
Publication verified on 2026-
|
|
114
|
-
available at `0.3.
|
|
115
|
+
Publication verified on 2026-11-14: Python and all three npm packages are
|
|
116
|
+
available at `0.3.3`:
|
|
115
117
|
[pi](https://www.npmjs.com/package/luminary-memory-pi),
|
|
116
118
|
[OpenCode](https://www.npmjs.com/package/luminary-memory-opencode), and
|
|
117
119
|
[omp](https://www.npmjs.com/package/luminary-memory-omp).
|
|
118
|
-
All npm `latest` tags
|
|
120
|
+
All npm `latest` tags point to `0.3.3`. Verified SHA-1 shasums:
|
|
121
|
+
pi `a5c613417ef20c4e178e53a5e56e5b9e4e0c121d`,
|
|
122
|
+
OpenCode `ee8ffe5a4089b5441dde52af9a90d4f0ce37fe9b`,
|
|
123
|
+
omp `82d18ba70ebba95d3566c1f394561000a76d34c5`.
|
|
124
|
+
|
|
125
|
+
These npm shasums do not match the `v0.3.3` GitHub release tarballs. The npm
|
|
126
|
+
entry points match later `develop` builds, which use the new `core` bridge
|
|
127
|
+
action. Do not treat npm and PyPI `0.3.3` as one validated release. Existing
|
|
128
|
+
published versions and tags are immutable; recovery uses a new coordinated
|
|
129
|
+
version built and gated by the tag workflow.
|
|
119
130
|
Installing all three from npm succeeded. The real V2 CLI also installed the
|
|
120
131
|
OpenCode package and an actual native session stored a fact through the
|
|
121
132
|
published PyPI wheel. That wheel's CLI installer and remember/recall/forget
|
|
@@ -141,7 +152,7 @@ proof of a live website listing.
|
|
|
141
152
|
## Interactive inspectors
|
|
142
153
|
|
|
143
154
|
The `0.3.3` source includes the inspector in the Python and native npm
|
|
144
|
-
packages. The published `0.3.
|
|
155
|
+
packages. The published `0.3.3` packages include it. Installing the
|
|
145
156
|
inspector does not enable saving, start a server on import, or call an AI model.
|
|
146
157
|
Exact tested native hosts and the two remaining blocked surfaces are recorded
|
|
147
158
|
in the [roadmap matrix](ROADMAP.md#target-support-matrix).
|
|
@@ -241,7 +252,7 @@ This remains an alternative to native package installation. Install the
|
|
|
241
252
|
published Python bridge, then copy only the adapter for the host you use:
|
|
242
253
|
|
|
243
254
|
```bash
|
|
244
|
-
python -m pip install --upgrade "luminary-memory==0.3.
|
|
255
|
+
python -m pip install --upgrade "luminary-memory==0.3.3"
|
|
245
256
|
luminary-memory hook install opencode
|
|
246
257
|
luminary-memory hook install pi
|
|
247
258
|
luminary-memory hook install omp
|
|
@@ -370,16 +381,61 @@ or to a project's `.opencode/skills/luminary-memory/SKILL.md`. OpenCode
|
|
|
370
381
|
discovers both locations automatically; no `opencode.json` entry is required.
|
|
371
382
|
The skill is documentation only and does not change plugin behavior.
|
|
372
383
|
|
|
373
|
-
##
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
384
|
+
## Core baseline
|
|
385
|
+
|
|
386
|
+
Core memory is a separate, database-backed baseline, not part of query recall.
|
|
387
|
+
Confirmed core-tagged rows load independently of the current query before the
|
|
388
|
+
live user message. `core` is a bridge action with no query or text field: it
|
|
389
|
+
takes the usual agent, workspace, and session binding and returns status `ok`
|
|
390
|
+
with the currently valid core rows and one labeled `<luminary-core-memory>`
|
|
391
|
+
context block. Empty core is `ok` with `memories: []` and `context: ""`; it is
|
|
392
|
+
not an error, does not call query recall, and does not mutate access or ranking
|
|
393
|
+
state.
|
|
394
|
+
|
|
395
|
+
Core selection binds the exact adapter scope without global rows and keeps only
|
|
396
|
+
active, currently valid rows. Rows follow their stable core-tag insertion order;
|
|
397
|
+
`LUMINARY_CORE_TOP_N` (default 12, capped at 12; `0` disables baseline loading)
|
|
398
|
+
limits how many rows are used and `LUMINARY_CORE_BUDGET` (default 8000)
|
|
399
|
+
bounds the total content characters across the selected rows, not the rendered
|
|
400
|
+
block including JSON, IDs, tags, or labels. A row that does not fit whole is
|
|
401
|
+
skipped, never truncated. Adapters fetch core afresh at the start of each
|
|
402
|
+
admitted user run, so an explicit remember, forget, or retraction is visible
|
|
403
|
+
without restarting the host. The block is request-local, non-system reference
|
|
404
|
+
data: adapters replace their own marked baseline instead of appending duplicate
|
|
405
|
+
transcript entries. Its label says confirmed durable identity, preferences, and
|
|
406
|
+
rules are subordinate default context; current system instructions, verified
|
|
407
|
+
runtime state, and an explicit current user correction take precedence without
|
|
408
|
+
silently editing stored memory. A failed core request injects no fabricated
|
|
409
|
+
baseline.
|
|
410
|
+
|
|
411
|
+
pi and omp prepend the core block and then a non-empty successful recall
|
|
412
|
+
reference as request-only custom messages in their `context` hook; OpenCode
|
|
413
|
+
unshifts the matching request-local parts before the live user message in its
|
|
414
|
+
`context` hook. All three filter out their own previously injected baseline and
|
|
415
|
+
recall entries so repeated turns do not grow the visible conversation. Hosts
|
|
416
|
+
may resend baseline when their model API requires it, equivalent to resending
|
|
417
|
+
`AGENTS.md`; the adapter does not create a duplicate transcript entry.
|
|
418
|
+
|
|
419
|
+
## Query recall
|
|
420
|
+
|
|
421
|
+
Before a normal user run, adapters recall only query-relevant,
|
|
422
|
+
evidence-bearing memory. Recall is pure: a returned row already represented in
|
|
423
|
+
the loaded core baseline by ID or normalized content is removed, so it never
|
|
424
|
+
appears twice. If only core rows matched, recall returns `abstain` with
|
|
425
|
+
`reason: matches_already_in_core`, empty `memories`, and empty `context`; core
|
|
426
|
+
never turns abstention into success. An engine `ok` result whose rows are all
|
|
427
|
+
invalid, already in core, or otherwise not deliverable becomes `abstain` with
|
|
428
|
+
`reason: no_deliverable_candidate` (or `matches_already_in_core` when only core
|
|
429
|
+
matched), with empty `memories` and `context`. Other results keep the engine's
|
|
430
|
+
status and reason. Recall uses its own row cap and 8000-character whole-row
|
|
431
|
+
serialization budget; the core budget is separate and neither expands the other.
|
|
432
|
+
|
|
433
|
+
The recall result is a request-local, non-system reference before the live user
|
|
434
|
+
message, not a persistent transcript entry. Empty, abstained, or failed recall
|
|
435
|
+
injects nothing: pi/omp add no custom message and OpenCode adds no recall part.
|
|
436
|
+
Historical data is untrusted; adapters attach the bridge's context string as-is
|
|
437
|
+
without slicing or double JSON encoding. Aborted/error/tool-only responses are
|
|
438
|
+
not automatically retained. Compaction is not a write.
|
|
383
439
|
|
|
384
440
|
Automatic durable capture is disabled unless configured:
|
|
385
441
|
|
|
@@ -410,19 +466,29 @@ Run `python -m luminary_memory.integrations bridge` (or
|
|
|
410
466
|
`luminary-memory hook bridge`) with **one UTF-8 JSON object on stdin**, then
|
|
411
467
|
close stdin. Never interpolate user text into a shell command:
|
|
412
468
|
|
|
469
|
+
Query recall:
|
|
470
|
+
|
|
413
471
|
```json
|
|
414
472
|
{"agent":"another-supported-host","workspace":"/absolute/project","session_id":"native-session-42","action":"recall","query":"deploy target"}
|
|
415
473
|
```
|
|
416
474
|
|
|
475
|
+
Baseline load (no query):
|
|
476
|
+
|
|
477
|
+
```json
|
|
478
|
+
{"agent":"another-supported-host","workspace":"/absolute/project","session_id":"native-session-42","action":"core"}
|
|
479
|
+
```
|
|
480
|
+
|
|
417
481
|
The stable harness identifier accepts `[a-z][a-z0-9._-]{0,63}`; it is an ownership
|
|
418
|
-
key, not a dynamically loaded plugin name. Actions: `
|
|
419
|
-
|
|
420
|
-
`
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
482
|
+
key, not a dynamically loaded plugin name. Actions: `core` (no query or text),
|
|
483
|
+
`recall` (`query`), `remember` (`text`, `evidence_quote`, optional `tags`),
|
|
484
|
+
`forget` (`memory_id`), `activity`, and `turn` (`user`, `assistant`, optional
|
|
485
|
+
lineage `tags`). Every action requires absolute workspace, agent ID, and native
|
|
486
|
+
session ID. Maximum request: 128 KiB; each text field: 32,768 characters. A
|
|
487
|
+
response is a UTF-8 JSON object containing `ok`, `status`, `reason`, `message`,
|
|
488
|
+
`context`, `memories`, `stored`, and `deleted`; errors exit nonzero. `core`
|
|
489
|
+
returns status `ok` even when it has no valid rows, in which case `memories` and
|
|
490
|
+
`context` are empty. Keep stdout reserved for that response and treat recalled
|
|
491
|
+
data as untrusted. Native adapters bound process lifetime/output and use no shell.
|
|
426
492
|
|
|
427
493
|
For remember, the **trusted adapter**, never model arguments, supplies a fresh
|
|
428
494
|
`LUMINARY_BRIDGE_SOURCE` environment value to that one child process:
|
|
@@ -6544,7 +6544,7 @@
|
|
|
6544
6544
|
},
|
|
6545
6545
|
"plugins/omp": {
|
|
6546
6546
|
"name": "luminary-memory-omp",
|
|
6547
|
-
"version": "0.3.
|
|
6547
|
+
"version": "0.3.4",
|
|
6548
6548
|
"license": "Apache-2.0",
|
|
6549
6549
|
"engines": {
|
|
6550
6550
|
"bun": ">=1.3.14",
|
|
@@ -6565,7 +6565,7 @@
|
|
|
6565
6565
|
},
|
|
6566
6566
|
"plugins/opencode": {
|
|
6567
6567
|
"name": "luminary-memory-opencode",
|
|
6568
|
-
"version": "0.3.
|
|
6568
|
+
"version": "0.3.4",
|
|
6569
6569
|
"license": "Apache-2.0",
|
|
6570
6570
|
"dependencies": {
|
|
6571
6571
|
"zod": "4.6.7"
|
|
@@ -6600,7 +6600,7 @@
|
|
|
6600
6600
|
},
|
|
6601
6601
|
"plugins/pi": {
|
|
6602
6602
|
"name": "luminary-memory-pi",
|
|
6603
|
-
"version": "0.3.
|
|
6603
|
+
"version": "0.3.4",
|
|
6604
6604
|
"license": "Apache-2.0",
|
|
6605
6605
|
"engines": {
|
|
6606
6606
|
"node": ">=22.19.0"
|
|
@@ -9,16 +9,14 @@ embedded Bun runtime to load extensions.
|
|
|
9
9
|
|
|
10
10
|
## Registry installation
|
|
11
11
|
|
|
12
|
-
The registry commands below install `0.3.
|
|
13
|
-
`0.3.3` inspector, use the matching Python bridge and native package built from
|
|
14
|
-
this checkout or obtained from the GitHub release when available.
|
|
12
|
+
The registry commands below install `0.3.3`, which includes the inspector.
|
|
15
13
|
|
|
16
14
|
Install the published Python bridge from PyPI, then install the omp package:
|
|
17
15
|
|
|
18
16
|
```sh
|
|
19
|
-
python -m pip install --upgrade "luminary-memory==0.3.
|
|
17
|
+
python -m pip install --upgrade "luminary-memory==0.3.3"
|
|
20
18
|
export LUMINARY_PYTHON=/absolute/path/to/venv/bin/python
|
|
21
|
-
omp plugin install luminary-memory-omp@0.3.
|
|
19
|
+
omp plugin install luminary-memory-omp@0.3.3
|
|
22
20
|
```
|
|
23
21
|
|
|
24
22
|
No npm install script installs Python for you. Set `LUMINARY_PYTHON` to the
|
|
@@ -6,35 +6,33 @@ and **`@opencode/plugin` 2.2.0**. This is an official Luminary package,
|
|
|
6
6
|
|
|
7
7
|
**Development scope:** the `0.3.3` source includes this inspector
|
|
8
8
|
for OpenCode CLI and Desktop on `@opencode/cli` and `@opencode/plugin`
|
|
9
|
-
**2.2.0**. The published `0.3.
|
|
10
|
-
on OpenCode 2.1.4
|
|
9
|
+
**2.2.0**. The published `0.3.3` bridge includes the inspector; `0.3.2` was
|
|
10
|
+
verified on OpenCode 2.1.4, and `0.3.1` targets the separate V1 API. Native Web GUI
|
|
11
11
|
contribution discovery remains
|
|
12
12
|
blocked upstream. See the [target matrix](https://github.com/alertxsto/luminary-memory/blob/develop/docs/ROADMAP.md#target-support-matrix)
|
|
13
13
|
for exact scope, lifecycle and release limitations.
|
|
14
14
|
|
|
15
15
|
## Install
|
|
16
16
|
|
|
17
|
-
The registry commands below install `0.3.
|
|
18
|
-
`0.3.3` inspector, use the matching Python bridge and native package built from
|
|
19
|
-
this checkout or obtained from the GitHub release when available.
|
|
17
|
+
The registry commands below install `0.3.3`, which includes the inspector.
|
|
20
18
|
|
|
21
19
|
Install the published Python bridge from PyPI:
|
|
22
20
|
|
|
23
21
|
```sh
|
|
24
|
-
python -m pip install --upgrade "luminary-memory==0.3.
|
|
22
|
+
python -m pip install --upgrade "luminary-memory==0.3.3"
|
|
25
23
|
export LUMINARY_PYTHON=/absolute/path/to/venv/bin/python
|
|
26
24
|
```
|
|
27
25
|
|
|
28
26
|
Install the V2 npm package through OpenCode:
|
|
29
27
|
|
|
30
28
|
```sh
|
|
31
|
-
opencode plugin add luminary-memory-opencode@0.3.
|
|
29
|
+
opencode plugin add luminary-memory-opencode@0.3.3
|
|
32
30
|
```
|
|
33
31
|
|
|
34
32
|
Alternatively, add it to your existing `opencode.json` or `opencode.jsonc`:
|
|
35
33
|
|
|
36
34
|
```json
|
|
37
|
-
{"plugins": ["luminary-memory-opencode@0.3.
|
|
35
|
+
{"plugins": ["luminary-memory-opencode@0.3.3"]}
|
|
38
36
|
```
|
|
39
37
|
|
|
40
38
|
V2 uses **`plugins`**, not V1's singular `plugin`. The host provides the SDK and
|
|
@@ -150,7 +148,7 @@ Compatible clients consume the server's native tools/results. This package does
|
|
|
150
148
|
not add a universal client toolbar or a standalone desktop app. Before enabling
|
|
151
149
|
it, remove only the old copied Luminary adapter and its explicit config entry;
|
|
152
150
|
do not run both installation forms. To remove the package, use
|
|
153
|
-
`opencode plugin remove luminary-memory-opencode@0.3.
|
|
151
|
+
`opencode plugin remove luminary-memory-opencode@0.3.3` or remove its config
|
|
154
152
|
entry. Reload/restart the server as needed. Stored memory is not deleted.
|
|
155
153
|
|
|
156
154
|
## Compatibility evidence
|
|
@@ -176,7 +174,7 @@ review. This is not a verified V2 catalog or a live website listing.
|
|
|
176
174
|
The obsolete local listing patch is no longer shipped.
|
|
177
175
|
|
|
178
176
|
[Source PR #17](https://github.com/alertxsto/luminary-memory/pull/17) has merged.
|
|
179
|
-
Python and all three native npm packages are published at `0.3.
|
|
177
|
+
Python and all three native npm packages are published at `0.3.3`.
|
|
180
178
|
|
|
181
179
|
[Configuration and ownership](https://github.com/alertxsto/luminary-memory/blob/main/docs/agent-integrations.md)
|
|
182
180
|
· [OpenCode V2 plugin contract](https://opencode.ai/v2/docs/plugins/)
|
|
@@ -9,16 +9,14 @@ versions accepted by the root manifest).
|
|
|
9
9
|
|
|
10
10
|
## Registry installation
|
|
11
11
|
|
|
12
|
-
The registry commands below install `0.3.
|
|
13
|
-
`0.3.3` inspector, use the matching Python bridge and native package built from
|
|
14
|
-
this checkout or obtained from the GitHub release when available.
|
|
12
|
+
The registry commands below install `0.3.3`, which includes the inspector.
|
|
15
13
|
|
|
16
14
|
Install the published Python bridge from PyPI, then install the pi package:
|
|
17
15
|
|
|
18
16
|
```sh
|
|
19
|
-
python -m pip install --upgrade "luminary-memory==0.3.
|
|
17
|
+
python -m pip install --upgrade "luminary-memory==0.3.3"
|
|
20
18
|
export LUMINARY_PYTHON=/absolute/path/to/venv/bin/python
|
|
21
|
-
pi install npm:luminary-memory-pi@0.3.
|
|
19
|
+
pi install npm:luminary-memory-pi@0.3.3
|
|
22
20
|
```
|
|
23
21
|
|
|
24
22
|
No npm install script installs Python for you. Set `LUMINARY_PYTHON` to the
|
|
@@ -120,6 +120,33 @@ class MemoryBackend(ABC):
|
|
|
120
120
|
"""Return insertion/duplicate acknowledgement, or None without a ledger."""
|
|
121
121
|
return
|
|
122
122
|
|
|
123
|
+
def prune_episodes(
|
|
124
|
+
self,
|
|
125
|
+
max_rows: int,
|
|
126
|
+
scope: dict | None = None,
|
|
127
|
+
include_global: bool = True,
|
|
128
|
+
) -> int:
|
|
129
|
+
"""Delete oldest scoped episodes beyond *max_rows*; 0 disables."""
|
|
130
|
+
return 0
|
|
131
|
+
|
|
132
|
+
def prune_events(
|
|
133
|
+
self,
|
|
134
|
+
max_rows: int,
|
|
135
|
+
scope: dict | None = None,
|
|
136
|
+
include_global: bool = True,
|
|
137
|
+
) -> int:
|
|
138
|
+
"""Delete oldest scoped audit events beyond *max_rows*; 0 disables."""
|
|
139
|
+
return 0
|
|
140
|
+
|
|
141
|
+
def prune_evidence(
|
|
142
|
+
self,
|
|
143
|
+
max_rows: int,
|
|
144
|
+
scope: dict | None = None,
|
|
145
|
+
include_global: bool = True,
|
|
146
|
+
) -> int:
|
|
147
|
+
"""Delete oldest scoped evidence rows beyond *max_rows*; 0 disables."""
|
|
148
|
+
return 0
|
|
149
|
+
|
|
123
150
|
def recent_episodes(
|
|
124
151
|
self,
|
|
125
152
|
limit: int = 10,
|
|
@@ -180,6 +180,73 @@ class InspectorSQL:
|
|
|
180
180
|
*(scope[field] for field in fields)))
|
|
181
181
|
self._commit()
|
|
182
182
|
|
|
183
|
+
def _prune_ledger(self, table: str, max_rows: int, scope, include_global: bool) -> int:
|
|
184
|
+
"""Delete oldest scoped rows beyond a hard row cap.
|
|
185
|
+
|
|
186
|
+
The cap is deterministic and keeps the newest rows, so current-session
|
|
187
|
+
continuity and recent audit remain available. 0 disables pruning.
|
|
188
|
+
"""
|
|
189
|
+
from luminary_memory.scope import scope_sql
|
|
190
|
+
|
|
191
|
+
cap = max(0, int(max_rows))
|
|
192
|
+
if cap == 0:
|
|
193
|
+
return 0
|
|
194
|
+
where, params = scope_sql(
|
|
195
|
+
scope, alias="e", include_global=include_global, active_only=False
|
|
196
|
+
)
|
|
197
|
+
total = int(self._sql(
|
|
198
|
+
f"SELECT COUNT(*) FROM {table} e WHERE {where}", tuple(params)
|
|
199
|
+
).fetchone()[0])
|
|
200
|
+
excess = total - cap
|
|
201
|
+
if excess <= 0:
|
|
202
|
+
return 0
|
|
203
|
+
order = "e.created_at ASC, e.id ASC"
|
|
204
|
+
if table == "episodes" and not hasattr(self, "_psycopg"):
|
|
205
|
+
order = "e.created_at ASC, e.rowid ASC"
|
|
206
|
+
self._sql(
|
|
207
|
+
f"DELETE FROM {table} WHERE id IN "
|
|
208
|
+
f"(SELECT e.id FROM {table} e WHERE {where} ORDER BY {order} LIMIT ?)",
|
|
209
|
+
(*params, excess),
|
|
210
|
+
)
|
|
211
|
+
self._commit()
|
|
212
|
+
return excess
|
|
213
|
+
|
|
214
|
+
def prune_episodes(self, max_rows: int, scope=None, include_global: bool = True) -> int:
|
|
215
|
+
return self._prune_ledger("episodes", max_rows, scope, include_global)
|
|
216
|
+
|
|
217
|
+
def prune_events(self, max_rows: int, scope=None, include_global: bool = True) -> int:
|
|
218
|
+
return self._prune_ledger("memory_events", max_rows, scope, include_global)
|
|
219
|
+
|
|
220
|
+
def prune_evidence(self, max_rows: int, scope=None, include_global: bool = True) -> int:
|
|
221
|
+
"""Prune evidence by its owning memory's scope; evidence has no scope columns."""
|
|
222
|
+
from luminary_memory.scope import scope_sql
|
|
223
|
+
|
|
224
|
+
cap = max(0, int(max_rows))
|
|
225
|
+
if cap == 0:
|
|
226
|
+
return 0
|
|
227
|
+
memory_where, params = scope_sql(
|
|
228
|
+
scope, alias="m", include_global=include_global, active_only=False
|
|
229
|
+
)
|
|
230
|
+
where = f"e.memory_id IN (SELECT m.id FROM memories m WHERE {memory_where})"
|
|
231
|
+
if scope is None and include_global:
|
|
232
|
+
# Orphaned evidence has no owner left to scope it; only an
|
|
233
|
+
# unscoped/global lifecycle pass may reclaim it.
|
|
234
|
+
where = f"(e.memory_id IS NULL OR {where})"
|
|
235
|
+
total = int(self._sql(
|
|
236
|
+
f"SELECT COUNT(*) FROM memory_evidence e WHERE {where}", tuple(params)
|
|
237
|
+
).fetchone()[0])
|
|
238
|
+
excess = total - cap
|
|
239
|
+
if excess <= 0:
|
|
240
|
+
return 0
|
|
241
|
+
self._sql(
|
|
242
|
+
"DELETE FROM memory_evidence WHERE id IN "
|
|
243
|
+
f"(SELECT e.id FROM memory_evidence e WHERE {where} "
|
|
244
|
+
"ORDER BY e.created_at ASC, e.id ASC LIMIT ?)",
|
|
245
|
+
(*params, excess),
|
|
246
|
+
)
|
|
247
|
+
self._commit()
|
|
248
|
+
return excess
|
|
249
|
+
|
|
183
250
|
def inspector_get(self, key, default=None):
|
|
184
251
|
row = self._sql("SELECT value FROM inspector_metadata WHERE key = ?", (key,)).fetchone()
|
|
185
252
|
return json.loads(row[0]) if row else default
|
|
@@ -229,6 +229,10 @@ class Settings:
|
|
|
229
229
|
)
|
|
230
230
|
token_budget: int = field(default_factory=lambda: _env_int("LUMINARY_TOKEN_BUDGET", 4096))
|
|
231
231
|
max_memories: int | None = field(default_factory=lambda: _env_int("LUMINARY_MAX_MEMORIES", 1000))
|
|
232
|
+
# Append-only ledger retention. 0 disables pruning for that ledger.
|
|
233
|
+
episode_max_rows: int = field(default_factory=lambda: _env_int("LUMINARY_EPISODE_MAX_ROWS", 10000))
|
|
234
|
+
event_max_rows: int = field(default_factory=lambda: _env_int("LUMINARY_EVENT_MAX_ROWS", 50000))
|
|
235
|
+
evidence_max_rows: int = field(default_factory=lambda: _env_int("LUMINARY_EVIDENCE_MAX_ROWS", 50000))
|
|
232
236
|
# Safety policy. Legacy direct clients keep permissive recall unless
|
|
233
237
|
# enabled, while Hermes/CLI accuracy paths opt into strict abstention.
|
|
234
238
|
strict_recall: bool = field(default_factory=lambda: _env_bool("LUMINARY_STRICT_RECALL", False))
|
|
@@ -300,6 +304,9 @@ class Settings:
|
|
|
300
304
|
"recall_min_score": self.recall_min_score,
|
|
301
305
|
"token_budget": self.token_budget,
|
|
302
306
|
"max_memories": self.max_memories,
|
|
307
|
+
"episode_max_rows": self.episode_max_rows,
|
|
308
|
+
"event_max_rows": self.event_max_rows,
|
|
309
|
+
"evidence_max_rows": self.evidence_max_rows,
|
|
303
310
|
"strict_recall": self.strict_recall,
|
|
304
311
|
"scope_include_global": self.scope_include_global,
|
|
305
312
|
"abstention_min_confidence": self.abstention_min_confidence,
|