agent-notes 2.28.0__tar.gz → 2.30.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_notes-2.28.0 → agent_notes-2.30.0}/PKG-INFO +161 -146
- {agent_notes-2.28.0 → agent_notes-2.30.0}/README.md +159 -145
- agent_notes-2.30.0/agent_notes/VERSION +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/cli.py +1 -1
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/config.py +5 -15
- agent_notes-2.30.0/agent_notes/commands/hook.py +479 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/wizard/__init__.py +9 -25
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/constants.py +6 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/coder.md +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/refactorer.md +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/execution.md +8 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/guardrails.md +1 -0
- agent_notes-2.30.0/agent_notes/data/agents/shared/pipelines.md +18 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/verification.md +4 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/plugin/claude.yaml +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/pricing.yaml +8 -6
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/roles/reasoner.yaml +0 -1
- agent_notes-2.30.0/agent_notes/data/skills/chrome-test/SKILL.md +262 -0
- agent_notes-2.30.0/agent_notes/data/templates/frontmatter/__pycache__/base.cpython-314.pyc +0 -0
- agent_notes-2.30.0/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
- agent_notes-2.30.0/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- agent_notes-2.30.0/agent_notes/data/templates/frontmatter/base.py +47 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/codex.py +7 -24
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/opencode.py +3 -47
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/model.py +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/role.py +1 -2
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/model_registry.py +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/role_registry.py +0 -1
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/scripts/_claude_backend.py +24 -8
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/scripts/_pricing.py +39 -7
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/credentials.py +2 -2
- agent_notes-2.30.0/agent_notes/services/install_executor.py +142 -0
- agent_notes-2.30.0/agent_notes/services/install_plan.py +283 -0
- agent_notes-2.30.0/agent_notes/services/installer.py +306 -0
- agent_notes-2.30.0/agent_notes/services/memory_backend.py +63 -0
- agent_notes-2.30.0/agent_notes/services/memory_router.py +14 -0
- agent_notes-2.30.0/agent_notes/services/model_resolver.py +222 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/rendering.py +13 -98
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/settings_writer.py +2 -2
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes.egg-info/PKG-INFO +161 -146
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes.egg-info/SOURCES.txt +17 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes.egg-info/requires.txt +1 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes.egg-info/top_level.txt +0 -1
- {agent_notes-2.28.0 → agent_notes-2.30.0}/pyproject.toml +4 -1
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/conftest.py +2 -1
- agent_notes-2.30.0/tests/functional/commands/test_install_roundtrip.py +162 -0
- agent_notes-2.30.0/tests/functional/commands/test_uninstall_full_hooks.py +297 -0
- agent_notes-2.30.0/tests/functional/commands/test_wizard_happy_path.py +163 -0
- agent_notes-2.30.0/tests/unit/commands/test_guard_credentials.py +652 -0
- agent_notes-2.30.0/tests/unit/commands/test_precompact_memory_bridge.py +182 -0
- agent_notes-2.30.0/tests/unit/commands/test_wizard_role_model_default.py +108 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_wizard_steps.py +3 -5
- agent_notes-2.30.0/tests/unit/scripts/test_cache_write_pricing.py +348 -0
- agent_notes-2.30.0/tests/unit/services/test_installer_credential_guard.py +149 -0
- agent_notes-2.30.0/tests/unit/services/test_installer_precompact_hook.py +154 -0
- agent_notes-2.30.0/tests/unit/services/test_model_resolver_characterization.py +530 -0
- agent_notes-2.28.0/agent_notes/VERSION +0 -1
- agent_notes-2.28.0/agent_notes/commands/hook.py +0 -69
- agent_notes-2.28.0/agent_notes/data/agents/shared/pipelines.md +0 -16
- agent_notes-2.28.0/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
- agent_notes-2.28.0/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- agent_notes-2.28.0/agent_notes/services/installer.py +0 -586
- agent_notes-2.28.0/agent_notes/services/memory_router.py +0 -32
- {agent_notes-2.28.0 → agent_notes-2.30.0}/LICENSE +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/__main__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/_install_helpers.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/build.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/doctor.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/info.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/install.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/list.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/_common.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/migrate.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/notes.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/reset.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/transfer.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/vault.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/memory/wiki.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/regenerate.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/set_role.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/uninstall.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/validate.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/wizard/_common.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/wizard/cost_report.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/wizard/execute.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/commands/wizard/orchestrator.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/config.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/agents.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/analyst.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/api-reviewer.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/architect.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/database-specialist.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/debugger.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/devil.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/devops.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/explorer.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/integrations.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/lead.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/performance-profiler.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/reviewer.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/security-auditor.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/cost_reporting.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/hard_limits.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/phase0.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/review.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/shared/wiki_compile.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/system-auditor.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/tech-writer.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/test-runner.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/test-writer.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/agents/wiki-compiler.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/cli/claude.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/cli/codex.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/cli/copilot.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/cli/opencode.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/commands/brainstorm.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/commands/debug.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/commands/review.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/global-claude.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/global-codex.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/global-copilot.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/global-opencode.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/hooks/session-context.md.tpl +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-haiku-4-5.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-opus-4-1.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-opus-4-5.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-opus-4-6.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-opus-4-7.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-opus-4-8.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-sonnet-4-5.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-sonnet-4-6.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/claude-sonnet-4.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/gpt-5-4-mini.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/gpt-5-4.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/models/gpt-5-5.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/plugin/opencode-index.js.template +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/plugin/opencode.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/roles/orchestrator.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/roles/scout.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/roles/worker.yaml +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/rules/code-quality.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/rules/safety.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/brainstorming/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/caveman/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/code-review/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/debugging-protocol/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/docker/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/docker/compose.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/docker/dockerfile.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/git/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/grill-me/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/grill-with-docs/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/handoff/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/improve-codebase-architecture/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/ingest/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/migrate-memory/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/obsidian-memory/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/prototype/LOGIC.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/prototype/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/prototype/UI.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/controllers.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/frontend.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/infra.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/models.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/testing.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rails/views.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/refactoring-protocol/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/rsi/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/setup-project-context/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/tdd/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/to-issues/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/to-prd/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/write-a-skill/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/skills/zoom-out/SKILL.md +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/__pycache__/__init__.cpython-312.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-312.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-312.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-312.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-312.pyc +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/data/templates/frontmatter/claude.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/doctor_checks.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/agent.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/cli_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/diagnostics.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/diff.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/rule.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/skill.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/domain/state.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/_base.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/agent_registry.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/cli_registry.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/rule_registry.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/registries/skill_registry.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/scripts/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/scripts/_formatting.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/scripts/_opencode_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/scripts/cost_report.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/_memory_utils.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/counts.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/diagnostics/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/diagnostics/_checks.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/diagnostics/_display.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/diagnostics/_fix.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/diff.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/fs.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/install_state_builder.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/local_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/migrations/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/obsidian_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/session_context.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/state_store.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/ui.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/user_config.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/validation.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/_wiki_utils.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/wiki_index.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/wiki_ingest.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/wiki_lint.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/wiki_query.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki/wiki_storage.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes/services/wiki_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes.egg-info/dependency_links.txt +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/agent_notes.egg-info/entry_points.txt +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/setup.cfg +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_config_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_doctor_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_info_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_install_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_list_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_regenerate_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_uninstall_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_validate_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/commands/test_validate_path_filter.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/memory/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/memory/test_memory_add_local_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/memory/test_memory_command.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/scripts/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/functional/scripts/test_release_script.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/build_output/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/build_output/test_build_output.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/install/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/install/test_install_methods.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/plugin_builders/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/integration/plugin_builders/test_plugin_builders.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/plugins/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/plugins/claude/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/plugins/claude/test_agents.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/plugins/codex/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/plugins/codex/test_agents.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/plugins/test_skills.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_cost_report_subcommand.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_count_agents.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_info.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_memory_add_description.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_memory_imports.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_memory_migrate.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_wizard_imports.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_wizard_orchestrator_skip.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/test_wizard_preflight.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/commands/wizard/test_cost_report_step.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/registries/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/registries/test_cli_registry.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/registries/test_registries.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/test_cost_report.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/test_cost_report_scoping.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/test_formatting_tty.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/test_opencode_backend_connection.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/test_opencode_backend_pricing.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/scripts/test_time_aggregation.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_build_functions.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_credential_filter.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_credentials.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_fs.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_installer_codex.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_installer_hook_quoting.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_installer_hooks.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_installer_plan.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_local_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_memory_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_memory_backend_io.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_memory_router.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_rendering_includes.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_session_context.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_settings_writer.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_skill_filtering.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_state_store.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_user_config_cost_report.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_validation.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_wiki_atomic_write.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_wiki_backend.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/services/test_wiki_imports.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/templates/__init__.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/templates/test_codex_frontmatter.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/test_import_health.py +0 -0
- {agent_notes-2.28.0 → agent_notes-2.30.0}/tests/unit/test_memory_dir_for_backend.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-notes
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.30.0
|
|
4
4
|
Summary: AI agent configuration manager for Claude Code, OpenCode, and Copilot
|
|
5
5
|
Author-email: Eugene Naumov <min.verkligheten@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -27,6 +27,7 @@ Requires-Dist: tomli>=1.1.0; python_version < "3.11"
|
|
|
27
27
|
Requires-Dist: tomli-w>=1.0.0
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
30
|
+
Requires-Dist: build>=1.0; extra == "dev"
|
|
30
31
|
Dynamic: license-file
|
|
31
32
|
|
|
32
33
|
# agent-notes
|
|
@@ -55,32 +56,61 @@ agent-notes doctor
|
|
|
55
56
|
|
|
56
57
|
### PyPI (recommended)
|
|
57
58
|
|
|
59
|
+
**pipx (isolated environment, no manual venv needed):**
|
|
60
|
+
|
|
58
61
|
```bash
|
|
59
|
-
pip install agent-notes
|
|
60
|
-
# or
|
|
61
62
|
pipx install agent-notes
|
|
62
63
|
agent-notes install
|
|
63
64
|
```
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
**venv + pip (if you prefer to manage your own environment):**
|
|
66
67
|
|
|
67
68
|
```bash
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
python -m venv .venv && source .venv/bin/activate
|
|
70
|
+
pip install agent-notes
|
|
71
|
+
agent-notes install
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Upgrade from a previous version
|
|
75
|
+
|
|
76
|
+
**Update in place (normal upgrade):**
|
|
77
|
+
|
|
78
|
+
With pipx:
|
|
79
|
+
```bash
|
|
70
80
|
pipx upgrade agent-notes && agent-notes install
|
|
71
81
|
```
|
|
72
82
|
|
|
83
|
+
With venv:
|
|
84
|
+
```bash
|
|
85
|
+
pip install --upgrade agent-notes && agent-notes install
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Clean reinstall (from an older version, fresh slate):**
|
|
89
|
+
|
|
90
|
+
If you are on a significantly older version or want a fresh configuration, uninstall completely and reinstall:
|
|
91
|
+
|
|
92
|
+
With pipx:
|
|
93
|
+
```bash
|
|
94
|
+
agent-notes uninstall && pipx uninstall agent-notes && pipx install agent-notes && agent-notes install
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
With venv:
|
|
98
|
+
```bash
|
|
99
|
+
agent-notes uninstall && pip uninstall agent-notes && pip install agent-notes && agent-notes install
|
|
100
|
+
```
|
|
101
|
+
|
|
73
102
|
### Local build (developers)
|
|
74
103
|
|
|
75
104
|
```bash
|
|
76
105
|
git clone https://github.com/rubakas/agent-notes.git
|
|
77
106
|
cd agent-notes
|
|
78
|
-
|
|
79
|
-
pipx install dist/*.whl # or pip install --user dist/*.whl
|
|
107
|
+
pipx install -e . # editable: CLI runs live from the working tree
|
|
80
108
|
agent-notes install
|
|
81
109
|
```
|
|
82
110
|
|
|
83
|
-
|
|
111
|
+
With editable mode, the CLI runs directly from your source files. After edits, run `agent-notes install` to rebuild `dist/` and reinstall into your Claude config. No rebuild command needed between iterations.
|
|
112
|
+
|
|
113
|
+
To produce a release artifact (wheel for distribution), use `python -m build` + `pipx reinstall dist/*.whl` — this is separate from local development.
|
|
84
114
|
|
|
85
115
|
### Plugin (limited functionality)
|
|
86
116
|
|
|
@@ -105,6 +135,36 @@ agent-notes config provider openrouter # prints "configured" or "no key"
|
|
|
105
135
|
|
|
106
136
|
</details>
|
|
107
137
|
|
|
138
|
+
<details>
|
|
139
|
+
<summary>Uninstall</summary>
|
|
140
|
+
|
|
141
|
+
To fully remove agent-notes:
|
|
142
|
+
|
|
143
|
+
**pipx:**
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
agent-notes uninstall
|
|
147
|
+
pipx uninstall agent-notes
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Run `agent-notes uninstall` first — it removes agent files, hooks, settings.json entries, context file, and state that agent-notes installed. Then `pipx uninstall` removes the package itself. The `agent-notes uninstall` command must run while the CLI is still installed.
|
|
151
|
+
|
|
152
|
+
**venv:**
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
agent-notes uninstall
|
|
156
|
+
deactivate
|
|
157
|
+
rm -rf .venv
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Run `agent-notes uninstall` first to clean up installed components, then deactivate the environment and delete the `.venv` directory.
|
|
161
|
+
|
|
162
|
+
**Note on memory and vault permissions:**
|
|
163
|
+
|
|
164
|
+
If you configured agent-notes to access your memory vault (Obsidian or local), those read/write permissions are intentionally left in place after uninstalling so Claude Code and other tools can still access your notes. To remove them, edit `~/.claude/settings.json` and delete the entries under `permissions.allow` that reference your vault path (e.g. `Read(/path/to/your/vault/**)`, `Write(/path/to/your/vault/**)`, `Edit(/path/to/your/vault/**)`).
|
|
165
|
+
|
|
166
|
+
</details>
|
|
167
|
+
|
|
108
168
|
---
|
|
109
169
|
|
|
110
170
|
<details>
|
|
@@ -163,148 +223,57 @@ Specialized subagents with hierarchical model strategy: **Opus 4.6 reasons, Sonn
|
|
|
163
223
|
<details>
|
|
164
224
|
<summary>Memory Storage</summary>
|
|
165
225
|
|
|
166
|
-
Agents accumulate knowledge across sessions
|
|
167
|
-
|
|
168
|
-
### Storage comparison
|
|
169
|
-
|
|
170
|
-
| Feature | Local | Obsidian | Wiki |
|
|
171
|
-
|---|---|---|---|
|
|
172
|
-
| Location | `~/.claude/agent-memory/` | Obsidian vault | Obsidian vault |
|
|
173
|
-
| Project scoping | No | Yes (per CWD) | Yes (per CWD) |
|
|
174
|
-
| Organization | Per-agent folders | Categories (Patterns, Decisions, etc.) | Wiki pages (sources, concepts, entities) |
|
|
175
|
-
| Best for | Simple setup | Process memory, visual browsing | Domain knowledge, team knowledge bases |
|
|
176
|
-
|
|
177
|
-
### Local (default)
|
|
226
|
+
Agents accumulate knowledge across sessions. Choose a backend during `agent-notes install`:
|
|
178
227
|
|
|
179
|
-
|
|
228
|
+
**Backends:**
|
|
229
|
+
- **`default - Claude Code built-in md files`** (default) — Plain markdown in `~/.claude/agent-memory/<agent>/`. No external tools. Simple, portable.
|
|
230
|
+
- **`Obsidian - session`** — Per-project session notes in Obsidian vault. Auto-creates `<vault>/<project>/` with categories: `Patterns/`, `Decisions/`, `Mistakes/`, `Context/`, `Sessions/`. Includes YAML frontmatter and `[[wikilinks]]`.
|
|
231
|
+
- **`Obsidian - brain`** — Karpathy's LLM Wiki pattern. Per-project knowledge brain in `<vault>/<project>/raw/` and `wiki/` (sources, concepts, entities, synthesis, sessions). Supports ingest/query/lint operations.
|
|
232
|
+
- **`None`** — Disables memory.
|
|
180
233
|
|
|
181
|
-
**
|
|
234
|
+
**To reconfigure after install:**
|
|
182
235
|
```bash
|
|
183
|
-
agent-notes
|
|
184
|
-
agent-notes memory
|
|
185
|
-
agent-notes memory size # disk usage
|
|
186
|
-
agent-notes memory reset [agent] # clear memory (confirmation required)
|
|
187
|
-
agent-notes memory export # back up to memory-backup/
|
|
188
|
-
agent-notes memory import # restore from memory-backup/
|
|
236
|
+
agent-notes install --reconfigure # switch storage
|
|
237
|
+
agent-notes config memory # interactive backend selector
|
|
189
238
|
```
|
|
190
239
|
|
|
191
|
-
###
|
|
240
|
+
### Local (default)
|
|
192
241
|
|
|
193
|
-
|
|
242
|
+
**Storage:** `~/.claude/agent-memory/<agent>/`
|
|
194
243
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
<
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
├── Sessions/
|
|
203
|
-
└── Index.md
|
|
244
|
+
```bash
|
|
245
|
+
agent-notes memory list # list all notes by agent
|
|
246
|
+
agent-notes memory show <agent> # show one agent's notes
|
|
247
|
+
agent-notes memory size # disk usage
|
|
248
|
+
agent-notes memory reset [agent] # clear memory (confirmation required)
|
|
249
|
+
agent-notes memory export # back up to memory-backup/
|
|
250
|
+
agent-notes memory import # restore from memory-backup/
|
|
204
251
|
```
|
|
205
252
|
|
|
206
|
-
|
|
253
|
+
### Obsidian (session or brain mode)
|
|
207
254
|
|
|
208
|
-
**
|
|
209
|
-
- YAML frontmatter for filtering and Dataview queries (created_at, type, agent, project, tags)
|
|
210
|
-
- Auto-linking: when you write a non-session note during an active session, the CLI auto-appends a wikilink to the session note via `[[note-name]]`
|
|
211
|
-
- Plan mirroring: plans created during a session are automatically mirrored as Decision notes
|
|
212
|
-
- Visual browsing in Obsidian with backlinks and Dataview queries
|
|
255
|
+
**Storage:** `<vault-root>/<project-name>/` (auto-created per CWD)
|
|
213
256
|
|
|
214
|
-
**
|
|
257
|
+
**Session mode commands:**
|
|
215
258
|
```bash
|
|
216
|
-
agent-notes memory init
|
|
217
|
-
agent-notes memory list
|
|
218
|
-
agent-notes memory vault
|
|
219
|
-
agent-notes memory index
|
|
259
|
+
agent-notes memory init # create folder structure and Index.md
|
|
260
|
+
agent-notes memory list # list all notes (by category or agent)
|
|
261
|
+
agent-notes memory vault # show storage path and init status
|
|
262
|
+
agent-notes memory index # regenerate Index.md
|
|
220
263
|
agent-notes memory add <title> <body> [type] [agent] # type: pattern|decision|mistake|context|session
|
|
221
|
-
agent-notes memory
|
|
222
|
-
agent-notes memory
|
|
223
|
-
agent-notes memory
|
|
224
|
-
agent-notes memory import # restore from memory-backup/
|
|
225
|
-
agent-notes install --reconfigure # switch storage
|
|
264
|
+
agent-notes memory reset [agent] # clear memory (confirmation required)
|
|
265
|
+
agent-notes memory export # back up to memory-backup/
|
|
266
|
+
agent-notes memory import # restore from memory-backup/
|
|
226
267
|
```
|
|
227
268
|
|
|
228
|
-
**
|
|
229
|
-
```markdown
|
|
230
|
-
---
|
|
231
|
-
created_at: 2026-04-28T19:30:35Z
|
|
232
|
-
type: pattern
|
|
233
|
-
agent: coder
|
|
234
|
-
project: rubakas
|
|
235
|
-
tags: [rails, models]
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
# Rails Enum Prefix
|
|
239
|
-
|
|
240
|
-
Always use `_prefix: true` with Rails enums to avoid method name collisions.
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### Wiki (per-project knowledge brain)
|
|
244
|
-
|
|
245
|
-
Implements Karpathy's LLM Wiki pattern (v1). Auto-creates a folder per project (derived from current working directory name) with immutable source material and LLM-maintained wiki pages.
|
|
246
|
-
|
|
247
|
-
**Structure:**
|
|
248
|
-
```
|
|
249
|
-
<vault-root>/<project-name>/
|
|
250
|
-
├── raw/ # immutable source material
|
|
251
|
-
└── wiki/
|
|
252
|
-
├── sources/ # ingested source pages
|
|
253
|
-
├── concepts/ # domain concepts
|
|
254
|
-
├── entities/ # external tools/services
|
|
255
|
-
├── synthesis/ # cross-cutting themes
|
|
256
|
-
├── sessions/ # session logs
|
|
257
|
-
├── index.md
|
|
258
|
-
└── log.md
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
**Key operations:**
|
|
262
|
-
|
|
263
|
-
- **Ingest** — Process source material (URLs, files, folders), extract key info, update entity/concept pages, append to log. Feeds external knowledge into the wiki brain for persistent, queryable knowledge.
|
|
264
|
-
|
|
265
|
-
Use during Claude Code sessions: `/ingest https://docs.example.com/api` or `/ingest ./path/to/file.py`
|
|
266
|
-
|
|
267
|
-
CLI fallback: `agent-notes memory ingest "<title>" "<body>" "<concepts>" "<entities>" "<tags>"`
|
|
268
|
-
|
|
269
|
-
- **Query** — Search wiki pages, synthesize answers with citations, optionally file answers back as new pages
|
|
270
|
-
|
|
271
|
-
- **Lint** — Health-check for contradictions, stale pages, data gaps, orphan pages, missing cross-references
|
|
272
|
-
|
|
273
|
-
**Commands:**
|
|
269
|
+
**Brain mode adds:**
|
|
274
270
|
```bash
|
|
275
|
-
agent-notes memory init # create folder structure and Index.md
|
|
276
|
-
agent-notes memory list # list all notes
|
|
277
|
-
agent-notes memory vault # show storage, path, and init status
|
|
278
|
-
agent-notes memory index # regenerate Index.md
|
|
279
|
-
agent-notes memory add <title> <body> [type] # type: source|concept|entity|synthesis|session
|
|
280
271
|
agent-notes memory ingest <title> <body> <concepts> <entities> <tags> # manual ingest
|
|
281
|
-
agent-notes memory query <question>
|
|
282
|
-
agent-notes memory lint
|
|
283
|
-
agent-notes memory reset # clear memory (confirmation required)
|
|
284
|
-
agent-notes memory export # back up to memory-backup/
|
|
285
|
-
agent-notes memory import # restore from memory-backup/
|
|
286
|
-
agent-notes install --reconfigure # switch storage
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### Project scoping (Obsidian + Wiki only)
|
|
290
|
-
|
|
291
|
-
Both Obsidian and Wiki storage modes auto-create a folder named after the current working directory, isolating different projects' memory.
|
|
292
|
-
|
|
293
|
-
**Example:**
|
|
294
|
-
- Working in `~/code/my-app/` → memory stored at `<vault>/my-app/`
|
|
295
|
-
- Working in `~/code/another-project/` → memory stored at `<vault>/another-project/`
|
|
296
|
-
|
|
297
|
-
The vault root is configured once during `agent-notes install`; the project path is resolved at runtime from the current working directory.
|
|
298
|
-
|
|
299
|
-
### Obsidian setup
|
|
300
|
-
|
|
301
|
-
Run `agent-notes install` and pick Obsidian when prompted. The wizard auto-detects existing vaults under `~/Documents`, `~/Desktop`, and `~`. To initialize the vault structure:
|
|
302
|
-
|
|
303
|
-
```bash
|
|
304
|
-
agent-notes memory init
|
|
272
|
+
agent-notes memory query <question> # search wiki pages
|
|
273
|
+
agent-notes memory lint # health-check
|
|
305
274
|
```
|
|
306
275
|
|
|
307
|
-
|
|
276
|
+
**Setup:** Run `agent-notes install` and choose `Obsidian - session` or `Obsidian - brain`. The wizard auto-detects vaults under `~/Documents`, `~/Desktop`, and `~`. Then run `agent-notes memory init`.
|
|
308
277
|
|
|
309
278
|
</details>
|
|
310
279
|
|
|
@@ -447,20 +416,46 @@ agent-notes config provider <name> # check if configured (without exposing
|
|
|
447
416
|
|
|
448
417
|
### Building and testing
|
|
449
418
|
|
|
450
|
-
Python 3.10+ required.
|
|
419
|
+
Python 3.10+ required. Create an isolated environment and run tests:
|
|
451
420
|
|
|
452
421
|
```bash
|
|
453
|
-
python -m
|
|
454
|
-
|
|
422
|
+
python -m venv .venv && source .venv/bin/activate
|
|
423
|
+
pip install -e ".[dev]" # installs runtime deps + pytest
|
|
424
|
+
pytest -q
|
|
455
425
|
```
|
|
456
426
|
|
|
427
|
+
The test suite automatically builds `dist/` before collection (via the `pytest_sessionstart` hook in `tests/conftest.py`), so you do not need to run `python -m build` manually before testing.
|
|
428
|
+
|
|
457
429
|
### Development workflow
|
|
458
430
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
431
|
+
**One-time setup (choose one):**
|
|
432
|
+
|
|
433
|
+
- Inside a venv: `python -m venv .venv && source .venv/bin/activate && pip install -e ".[dev]"`
|
|
434
|
+
- Or expose the CLI globally via pipx (editable): `pipx install -e .`
|
|
435
|
+
|
|
436
|
+
**Iteration loop:**
|
|
437
|
+
|
|
438
|
+
1. Edit source in `agent_notes/data/` (skills, rules, agents, etc.) or Python modules
|
|
439
|
+
2. Run `agent-notes install` to rebuild `dist/` and reinstall into your Claude config
|
|
440
|
+
3. For a clean reset, run `agent-notes uninstall && agent-notes install`
|
|
462
441
|
4. Run `agent-notes validate` to lint configuration files
|
|
463
|
-
5. Run tests: `
|
|
442
|
+
5. Run tests: `pytest -q` (the suite auto-builds `dist/` first via the conftest hook)
|
|
443
|
+
|
|
444
|
+
**Full local reset (one-liner):**
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
pipx uninstall agent-notes && pipx install -e . && agent-notes uninstall && agent-notes install
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
This command swaps any wheel install for an editable one and clears your Claude config. After this, future edits only need `agent-notes install` (or `agent-notes uninstall && agent-notes install` for a clean wipe).
|
|
451
|
+
|
|
452
|
+
**Profiles:**
|
|
453
|
+
|
|
454
|
+
By default, `agent-notes install` re-runs the interactive wizard and prompts for an optional profile label. To reinstall non-interactively into the same profile, use `agent-notes install --profile <label>` (e.g. `work` → installs into `~/.claude-work`).
|
|
455
|
+
|
|
456
|
+
The plugin build scripts (`scripts/build-claude-plugin.sh`, `scripts/build-opencode-plugin.sh`) automatically use `.venv/bin/python` when present, fall back to system `python3`, and honor a `PYTHON=` override.
|
|
457
|
+
|
|
458
|
+
**Note:** `uv` is used only in the local development and release workflow (see `scripts/release`). It is not required to install or use agent-notes — end users should use `pipx` or `pip` / `venv`.
|
|
464
459
|
|
|
465
460
|
### Test structure
|
|
466
461
|
|
|
@@ -468,18 +463,38 @@ python3 -m pytest tests/ -q
|
|
|
468
463
|
- `tests/integration/` — Build output and artifact validation
|
|
469
464
|
- `tests/plugins/` — Plugin artifact validation
|
|
470
465
|
|
|
466
|
+
### Releasing
|
|
467
|
+
|
|
468
|
+
The release process is automated via `scripts/release`, which runs **exclusively against the project `.venv`** (invoking `.venv/bin/python` directly, never system `python3`). The pre-flight phase aborts with a clear error if `.venv` does not exist or cannot import `agent_notes`, `tomli_w`, `build`, and `twine`.
|
|
469
|
+
|
|
470
|
+
**Provision the release environment once:**
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
pip install -e ".[dev]" twine
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
**Run the release:**
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
scripts/release # Full release: tests, build, PyPI upload, git tag, marketplace bundle
|
|
480
|
+
scripts/release --dry-run # Check-only: tests, build, twine check, smoke install; skip upload
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
The `--dry-run` flag is useful to validate the entire workflow before committing tags and pushing to PyPI.
|
|
484
|
+
|
|
471
485
|
### Contributing guidelines
|
|
472
486
|
|
|
473
487
|
When adding new content:
|
|
474
488
|
|
|
475
489
|
1. **Edit source files** — all changes go in `agent_notes/data/` directory
|
|
476
|
-
2. **
|
|
477
|
-
3. **
|
|
478
|
-
4. **
|
|
479
|
-
5. **
|
|
480
|
-
6. **
|
|
481
|
-
7. **Stay
|
|
482
|
-
|
|
490
|
+
2. **Rebuild and test** — `agent-notes install` rebuilds `dist/` and reinstalls; `pytest -q` auto-builds first
|
|
491
|
+
3. **Validate** — `agent-notes validate` before committing
|
|
492
|
+
4. **Keep it generic** — remove app-specific references
|
|
493
|
+
5. **Show examples** — include code samples with explanations
|
|
494
|
+
6. **Stay modular** — each skill should be independently usable
|
|
495
|
+
7. **Stay concise** — agent prompts under 60 lines
|
|
496
|
+
|
|
497
|
+
(Note: `python -m build` is only needed to produce a release wheel for distribution, not for local development.)
|
|
483
498
|
|
|
484
499
|
### Architecture
|
|
485
500
|
|