agent-notes 2.27.0__tar.gz → 2.29.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.27.0 → agent_notes-2.29.0}/PKG-INFO +113 -145
- {agent_notes-2.27.0 → agent_notes-2.29.0}/README.md +110 -144
- agent_notes-2.29.0/agent_notes/VERSION +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/config.py +5 -15
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/reset.py +2 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/validate.py +1 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/wizard/__init__.py +4 -14
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/wizard/execute.py +13 -11
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/agents.yaml +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/coder.md +2 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/refactorer.md +2 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/reviewer.md +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/execution.md +8 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/guardrails.md +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/pipelines.md +2 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/verification.md +4 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/test-writer.md +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/cli/claude.yaml +5 -0
- agent_notes-2.29.0/agent_notes/data/cli/codex.yaml +29 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/cli/opencode.yaml +5 -0
- agent_notes-2.29.0/agent_notes/data/global-codex.md +40 -0
- agent_notes-2.29.0/agent_notes/data/models/gpt-5-4-mini.yaml +14 -0
- agent_notes-2.29.0/agent_notes/data/models/gpt-5-4.yaml +14 -0
- agent_notes-2.29.0/agent_notes/data/models/gpt-5-5.yaml +14 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/plugin/claude.yaml +1 -0
- agent_notes-2.29.0/agent_notes/data/skills/chrome-test/SKILL.md +262 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/code-review/SKILL.md +6 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/debugging-protocol/SKILL.md +2 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/refactoring-protocol/SKILL.md +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rsi/SKILL.md +4 -3
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/tdd/SKILL.md +2 -1
- agent_notes-2.29.0/agent_notes/data/templates/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_notes-2.29.0/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_notes-2.29.0/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-312.pyc +0 -0
- agent_notes-2.29.0/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-312.pyc +0 -0
- agent_notes-2.29.0/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
- agent_notes-2.29.0/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-312.pyc +0 -0
- agent_notes-2.29.0/agent_notes/data/templates/frontmatter/codex.py +106 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/cli_backend.py +1 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/agent_registry.py +3 -3
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/cli_registry.py +2 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/scripts/_opencode_backend.py +3 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/credentials.py +14 -16
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/diagnostics/_fix.py +23 -21
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/fs.py +17 -4
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/installer.py +131 -104
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/rendering.py +194 -113
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/state_store.py +2 -3
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/validation.py +1 -5
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/_wiki_utils.py +4 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes.egg-info/PKG-INFO +113 -145
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes.egg-info/SOURCES.txt +24 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes.egg-info/requires.txt +2 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes.egg-info/top_level.txt +0 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/pyproject.toml +2 -2
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/conftest.py +2 -1
- agent_notes-2.29.0/tests/functional/commands/test_validate_path_filter.py +100 -0
- agent_notes-2.29.0/tests/plugins/codex/test_agents.py +138 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_wizard_steps.py +3 -5
- agent_notes-2.29.0/tests/unit/registries/test_cli_registry.py +184 -0
- agent_notes-2.29.0/tests/unit/scripts/test_opencode_backend_connection.py +118 -0
- agent_notes-2.29.0/tests/unit/services/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_credentials.py +74 -0
- agent_notes-2.29.0/tests/unit/services/test_installer_codex.py +460 -0
- agent_notes-2.29.0/tests/unit/services/test_installer_hook_quoting.py +85 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_validation.py +9 -3
- agent_notes-2.29.0/tests/unit/services/test_wiki_atomic_write.py +73 -0
- agent_notes-2.29.0/tests/unit/templates/__init__.py +0 -0
- agent_notes-2.29.0/tests/unit/templates/test_codex_frontmatter.py +383 -0
- agent_notes-2.27.0/agent_notes/VERSION +0 -1
- {agent_notes-2.27.0 → agent_notes-2.29.0}/LICENSE +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/__main__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/cli.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/_install_helpers.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/build.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/doctor.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/hook.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/info.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/install.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/list.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/_common.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/migrate.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/notes.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/transfer.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/vault.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/memory/wiki.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/regenerate.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/set_role.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/uninstall.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/wizard/_common.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/wizard/cost_report.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/commands/wizard/orchestrator.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/config.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/constants.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/analyst.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/api-reviewer.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/architect.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/database-specialist.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/debugger.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/devil.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/devops.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/explorer.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/integrations.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/lead.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/performance-profiler.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/security-auditor.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/cost_reporting.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/hard_limits.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/phase0.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/review.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/shared/wiki_compile.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/system-auditor.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/tech-writer.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/test-runner.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/agents/wiki-compiler.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/cli/copilot.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/commands/brainstorm.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/commands/debug.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/commands/review.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/global-claude.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/global-copilot.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/global-opencode.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/hooks/session-context.md.tpl +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-haiku-4-5.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-opus-4-1.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-opus-4-5.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-opus-4-6.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-opus-4-7.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-opus-4-8.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-sonnet-4-5.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-sonnet-4-6.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/models/claude-sonnet-4.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/plugin/opencode-index.js.template +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/plugin/opencode.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/pricing.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/roles/orchestrator.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/roles/reasoner.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/roles/scout.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/roles/worker.yaml +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/rules/code-quality.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/rules/safety.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/brainstorming/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/caveman/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/docker/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/docker/compose.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/docker/dockerfile.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/git/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/grill-me/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/grill-with-docs/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/handoff/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/improve-codebase-architecture/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/ingest/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/migrate-memory/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/obsidian-memory/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/prototype/LOGIC.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/prototype/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/prototype/UI.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/controllers.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/frontend.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/infra.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/models.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/testing.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/rails/views.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/setup-project-context/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/to-issues/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/to-prd/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/write-a-skill/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/skills/zoom-out/SKILL.md +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/frontmatter/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/frontmatter/claude.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/data/templates/frontmatter/opencode.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/doctor_checks.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/agent.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/diagnostics.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/diff.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/model.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/role.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/rule.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/skill.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/domain/state.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/_base.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/model_registry.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/role_registry.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/rule_registry.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/registries/skill_registry.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/scripts/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/scripts/_claude_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/scripts/_formatting.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/scripts/_pricing.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/scripts/cost_report.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/_memory_utils.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/counts.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/diagnostics/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/diagnostics/_checks.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/diagnostics/_display.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/diff.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/install_state_builder.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/local_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/memory_router.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/migrations/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/obsidian_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/session_context.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/settings_writer.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/ui.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/user_config.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/wiki_index.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/wiki_ingest.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/wiki_lint.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/wiki_query.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki/wiki_storage.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes/services/wiki_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes.egg-info/dependency_links.txt +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/agent_notes.egg-info/entry_points.txt +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/setup.cfg +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_config_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_doctor_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_info_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_install_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_list_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_regenerate_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_uninstall_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/commands/test_validate_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/memory/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/memory/test_memory_add_local_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/memory/test_memory_command.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/scripts/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/functional/scripts/test_release_script.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/build_output/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/build_output/test_build_output.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/install/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/install/test_install_methods.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/plugin_builders/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/integration/plugin_builders/test_plugin_builders.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/plugins/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/plugins/claude/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/plugins/claude/test_agents.py +0 -0
- {agent_notes-2.27.0/tests/unit → agent_notes-2.29.0/tests/plugins/codex}/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/plugins/test_skills.py +0 -0
- {agent_notes-2.27.0/tests/unit/commands → agent_notes-2.29.0/tests/unit}/__init__.py +0 -0
- {agent_notes-2.27.0/tests/unit/registries → agent_notes-2.29.0/tests/unit/commands}/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_cost_report_subcommand.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_count_agents.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_info.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_memory_add_description.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_memory_imports.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_memory_migrate.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_wizard_imports.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_wizard_orchestrator_skip.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/test_wizard_preflight.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/commands/wizard/test_cost_report_step.py +0 -0
- {agent_notes-2.27.0/tests/unit/scripts → agent_notes-2.29.0/tests/unit/registries}/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/registries/test_registries.py +0 -0
- {agent_notes-2.27.0/tests/unit/services → agent_notes-2.29.0/tests/unit/scripts}/__init__.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/scripts/test_cost_report.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/scripts/test_cost_report_scoping.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/scripts/test_formatting_tty.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/scripts/test_opencode_backend_pricing.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/scripts/test_time_aggregation.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_build_functions.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_credential_filter.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_fs.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_installer_hooks.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_installer_plan.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_local_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_memory_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_memory_backend_io.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_memory_router.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_rendering_includes.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_session_context.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_settings_writer.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_skill_filtering.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_state_store.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_user_config_cost_report.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_wiki_backend.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/services/test_wiki_imports.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.0}/tests/unit/test_import_health.py +0 -0
- {agent_notes-2.27.0 → agent_notes-2.29.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.29.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
|
|
@@ -24,8 +24,10 @@ Description-Content-Type: text/markdown
|
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
Requires-Dist: pyyaml>=6.0
|
|
26
26
|
Requires-Dist: tomli>=1.1.0; python_version < "3.11"
|
|
27
|
+
Requires-Dist: tomli-w>=1.0.0
|
|
27
28
|
Provides-Extra: dev
|
|
28
29
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
30
|
+
Requires-Dist: build>=1.0; extra == "dev"
|
|
29
31
|
Dynamic: license-file
|
|
30
32
|
|
|
31
33
|
# agent-notes
|
|
@@ -54,9 +56,9 @@ agent-notes doctor
|
|
|
54
56
|
|
|
55
57
|
### PyPI (recommended)
|
|
56
58
|
|
|
59
|
+
**pipx (isolated environment, no manual venv needed):**
|
|
60
|
+
|
|
57
61
|
```bash
|
|
58
|
-
pip install agent-notes
|
|
59
|
-
# or
|
|
60
62
|
pipx install agent-notes
|
|
61
63
|
agent-notes install
|
|
62
64
|
```
|
|
@@ -64,22 +66,35 @@ agent-notes install
|
|
|
64
66
|
Update anytime:
|
|
65
67
|
|
|
66
68
|
```bash
|
|
67
|
-
pip install --upgrade agent-notes && agent-notes install
|
|
68
|
-
# or
|
|
69
69
|
pipx upgrade agent-notes && agent-notes install
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
+
**venv + pip (if you prefer to manage your own environment):**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
python -m venv .venv && source .venv/bin/activate
|
|
76
|
+
pip install agent-notes
|
|
77
|
+
agent-notes install
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Update anytime:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install --upgrade agent-notes && agent-notes install
|
|
84
|
+
```
|
|
85
|
+
|
|
72
86
|
### Local build (developers)
|
|
73
87
|
|
|
74
88
|
```bash
|
|
75
89
|
git clone https://github.com/rubakas/agent-notes.git
|
|
76
90
|
cd agent-notes
|
|
77
|
-
|
|
78
|
-
pipx install dist/*.whl # or pip install --user dist/*.whl
|
|
91
|
+
pipx install -e . # editable: CLI runs live from the working tree
|
|
79
92
|
agent-notes install
|
|
80
93
|
```
|
|
81
94
|
|
|
82
|
-
|
|
95
|
+
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.
|
|
96
|
+
|
|
97
|
+
To produce a release artifact (wheel for distribution), use `python -m build` + `pipx reinstall dist/*.whl` — this is separate from local development.
|
|
83
98
|
|
|
84
99
|
### Plugin (limited functionality)
|
|
85
100
|
|
|
@@ -162,148 +177,57 @@ Specialized subagents with hierarchical model strategy: **Opus 4.6 reasons, Sonn
|
|
|
162
177
|
<details>
|
|
163
178
|
<summary>Memory Storage</summary>
|
|
164
179
|
|
|
165
|
-
Agents accumulate knowledge across sessions
|
|
166
|
-
|
|
167
|
-
### Storage comparison
|
|
180
|
+
Agents accumulate knowledge across sessions. Choose a backend during `agent-notes install`:
|
|
168
181
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
| Best for | Simple setup | Process memory, visual browsing | Domain knowledge, team knowledge bases |
|
|
182
|
+
**Backends:**
|
|
183
|
+
- **`default - Claude Code built-in md files`** (default) — Plain markdown in `~/.claude/agent-memory/<agent>/`. No external tools. Simple, portable.
|
|
184
|
+
- **`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]]`.
|
|
185
|
+
- **`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.
|
|
186
|
+
- **`None`** — Disables memory.
|
|
175
187
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
Plain markdown storage in `~/.claude/agent-memory/<agent>/` — one folder per agent, no project scoping or cross-referencing. Simplest setup, no external tools needed.
|
|
179
|
-
|
|
180
|
-
**Commands:**
|
|
188
|
+
**To reconfigure after install:**
|
|
181
189
|
```bash
|
|
182
|
-
agent-notes
|
|
183
|
-
agent-notes memory
|
|
184
|
-
agent-notes memory size # disk usage
|
|
185
|
-
agent-notes memory reset [agent] # clear memory (confirmation required)
|
|
186
|
-
agent-notes memory export # back up to memory-backup/
|
|
187
|
-
agent-notes memory import # restore from memory-backup/
|
|
190
|
+
agent-notes install --reconfigure # switch storage
|
|
191
|
+
agent-notes config memory # interactive backend selector
|
|
188
192
|
```
|
|
189
193
|
|
|
190
|
-
###
|
|
194
|
+
### Local (default)
|
|
191
195
|
|
|
192
|
-
|
|
196
|
+
**Storage:** `~/.claude/agent-memory/<agent>/`
|
|
193
197
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
<
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
├── Sessions/
|
|
202
|
-
└── Index.md
|
|
198
|
+
```bash
|
|
199
|
+
agent-notes memory list # list all notes by agent
|
|
200
|
+
agent-notes memory show <agent> # show one agent's notes
|
|
201
|
+
agent-notes memory size # disk usage
|
|
202
|
+
agent-notes memory reset [agent] # clear memory (confirmation required)
|
|
203
|
+
agent-notes memory export # back up to memory-backup/
|
|
204
|
+
agent-notes memory import # restore from memory-backup/
|
|
203
205
|
```
|
|
204
206
|
|
|
205
|
-
|
|
207
|
+
### Obsidian (session or brain mode)
|
|
206
208
|
|
|
207
|
-
**
|
|
208
|
-
- YAML frontmatter for filtering and Dataview queries (created_at, type, agent, project, tags)
|
|
209
|
-
- 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]]`
|
|
210
|
-
- Plan mirroring: plans created during a session are automatically mirrored as Decision notes
|
|
211
|
-
- Visual browsing in Obsidian with backlinks and Dataview queries
|
|
209
|
+
**Storage:** `<vault-root>/<project-name>/` (auto-created per CWD)
|
|
212
210
|
|
|
213
|
-
**
|
|
211
|
+
**Session mode commands:**
|
|
214
212
|
```bash
|
|
215
|
-
agent-notes memory init
|
|
216
|
-
agent-notes memory list
|
|
217
|
-
agent-notes memory vault
|
|
218
|
-
agent-notes memory index
|
|
213
|
+
agent-notes memory init # create folder structure and Index.md
|
|
214
|
+
agent-notes memory list # list all notes (by category or agent)
|
|
215
|
+
agent-notes memory vault # show storage path and init status
|
|
216
|
+
agent-notes memory index # regenerate Index.md
|
|
219
217
|
agent-notes memory add <title> <body> [type] [agent] # type: pattern|decision|mistake|context|session
|
|
220
|
-
agent-notes memory
|
|
221
|
-
agent-notes memory
|
|
222
|
-
agent-notes memory
|
|
223
|
-
agent-notes memory import # restore from memory-backup/
|
|
224
|
-
agent-notes install --reconfigure # switch storage
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
**Note format example:**
|
|
228
|
-
```markdown
|
|
229
|
-
---
|
|
230
|
-
created_at: 2026-04-28T19:30:35Z
|
|
231
|
-
type: pattern
|
|
232
|
-
agent: coder
|
|
233
|
-
project: rubakas
|
|
234
|
-
tags: [rails, models]
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
# Rails Enum Prefix
|
|
238
|
-
|
|
239
|
-
Always use `_prefix: true` with Rails enums to avoid method name collisions.
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
### Wiki (per-project knowledge brain)
|
|
243
|
-
|
|
244
|
-
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.
|
|
245
|
-
|
|
246
|
-
**Structure:**
|
|
247
|
-
```
|
|
248
|
-
<vault-root>/<project-name>/
|
|
249
|
-
├── raw/ # immutable source material
|
|
250
|
-
└── wiki/
|
|
251
|
-
├── sources/ # ingested source pages
|
|
252
|
-
├── concepts/ # domain concepts
|
|
253
|
-
├── entities/ # external tools/services
|
|
254
|
-
├── synthesis/ # cross-cutting themes
|
|
255
|
-
├── sessions/ # session logs
|
|
256
|
-
├── index.md
|
|
257
|
-
└── log.md
|
|
218
|
+
agent-notes memory reset [agent] # clear memory (confirmation required)
|
|
219
|
+
agent-notes memory export # back up to memory-backup/
|
|
220
|
+
agent-notes memory import # restore from memory-backup/
|
|
258
221
|
```
|
|
259
222
|
|
|
260
|
-
**
|
|
261
|
-
|
|
262
|
-
- **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.
|
|
263
|
-
|
|
264
|
-
Use during Claude Code sessions: `/ingest https://docs.example.com/api` or `/ingest ./path/to/file.py`
|
|
265
|
-
|
|
266
|
-
CLI fallback: `agent-notes memory ingest "<title>" "<body>" "<concepts>" "<entities>" "<tags>"`
|
|
267
|
-
|
|
268
|
-
- **Query** — Search wiki pages, synthesize answers with citations, optionally file answers back as new pages
|
|
269
|
-
|
|
270
|
-
- **Lint** — Health-check for contradictions, stale pages, data gaps, orphan pages, missing cross-references
|
|
271
|
-
|
|
272
|
-
**Commands:**
|
|
223
|
+
**Brain mode adds:**
|
|
273
224
|
```bash
|
|
274
|
-
agent-notes memory init # create folder structure and Index.md
|
|
275
|
-
agent-notes memory list # list all notes
|
|
276
|
-
agent-notes memory vault # show storage, path, and init status
|
|
277
|
-
agent-notes memory index # regenerate Index.md
|
|
278
|
-
agent-notes memory add <title> <body> [type] # type: source|concept|entity|synthesis|session
|
|
279
225
|
agent-notes memory ingest <title> <body> <concepts> <entities> <tags> # manual ingest
|
|
280
|
-
agent-notes memory query <question>
|
|
281
|
-
agent-notes memory lint
|
|
282
|
-
agent-notes memory reset # clear memory (confirmation required)
|
|
283
|
-
agent-notes memory export # back up to memory-backup/
|
|
284
|
-
agent-notes memory import # restore from memory-backup/
|
|
285
|
-
agent-notes install --reconfigure # switch storage
|
|
226
|
+
agent-notes memory query <question> # search wiki pages
|
|
227
|
+
agent-notes memory lint # health-check
|
|
286
228
|
```
|
|
287
229
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
Both Obsidian and Wiki storage modes auto-create a folder named after the current working directory, isolating different projects' memory.
|
|
291
|
-
|
|
292
|
-
**Example:**
|
|
293
|
-
- Working in `~/code/my-app/` → memory stored at `<vault>/my-app/`
|
|
294
|
-
- Working in `~/code/another-project/` → memory stored at `<vault>/another-project/`
|
|
295
|
-
|
|
296
|
-
The vault root is configured once during `agent-notes install`; the project path is resolved at runtime from the current working directory.
|
|
297
|
-
|
|
298
|
-
### Obsidian setup
|
|
299
|
-
|
|
300
|
-
Run `agent-notes install` and pick Obsidian when prompted. The wizard auto-detects existing vaults under `~/Documents`, `~/Desktop`, and `~`. To initialize the vault structure:
|
|
301
|
-
|
|
302
|
-
```bash
|
|
303
|
-
agent-notes memory init
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
The installed `CLAUDE.md` already points agents to your vault. At the start of a session Claude reads `Index.md`; at the end it can save insights with `agent-notes memory add`.
|
|
230
|
+
**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`.
|
|
307
231
|
|
|
308
232
|
</details>
|
|
309
233
|
|
|
@@ -446,20 +370,44 @@ agent-notes config provider <name> # check if configured (without exposing
|
|
|
446
370
|
|
|
447
371
|
### Building and testing
|
|
448
372
|
|
|
449
|
-
Python 3.10+ required.
|
|
373
|
+
Python 3.10+ required. Create an isolated environment and run tests:
|
|
450
374
|
|
|
451
375
|
```bash
|
|
452
|
-
python -m
|
|
453
|
-
|
|
376
|
+
python -m venv .venv && source .venv/bin/activate
|
|
377
|
+
pip install -e ".[dev]" # installs runtime deps + pytest
|
|
378
|
+
pytest -q
|
|
454
379
|
```
|
|
455
380
|
|
|
381
|
+
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.
|
|
382
|
+
|
|
456
383
|
### Development workflow
|
|
457
384
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
385
|
+
**One-time setup (choose one):**
|
|
386
|
+
|
|
387
|
+
- Inside a venv: `python -m venv .venv && source .venv/bin/activate && pip install -e ".[dev]"`
|
|
388
|
+
- Or expose the CLI globally via pipx (editable): `pipx install -e .`
|
|
389
|
+
|
|
390
|
+
**Iteration loop:**
|
|
391
|
+
|
|
392
|
+
1. Edit source in `agent_notes/data/` (skills, rules, agents, etc.) or Python modules
|
|
393
|
+
2. Run `agent-notes install` to rebuild `dist/` and reinstall into your Claude config
|
|
394
|
+
3. For a clean reset, run `agent-notes uninstall && agent-notes install`
|
|
461
395
|
4. Run `agent-notes validate` to lint configuration files
|
|
462
|
-
5. Run tests: `
|
|
396
|
+
5. Run tests: `pytest -q` (the suite auto-builds `dist/` first via the conftest hook)
|
|
397
|
+
|
|
398
|
+
**Full local reset (one-liner):**
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
pipx uninstall agent-notes && pipx install -e . && agent-notes uninstall && agent-notes install
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
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).
|
|
405
|
+
|
|
406
|
+
**Profiles:**
|
|
407
|
+
|
|
408
|
+
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`).
|
|
409
|
+
|
|
410
|
+
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.
|
|
463
411
|
|
|
464
412
|
### Test structure
|
|
465
413
|
|
|
@@ -467,18 +415,38 @@ python3 -m pytest tests/ -q
|
|
|
467
415
|
- `tests/integration/` — Build output and artifact validation
|
|
468
416
|
- `tests/plugins/` — Plugin artifact validation
|
|
469
417
|
|
|
418
|
+
### Releasing
|
|
419
|
+
|
|
420
|
+
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`.
|
|
421
|
+
|
|
422
|
+
**Provision the release environment once:**
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
pip install -e ".[dev]" twine
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
**Run the release:**
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
scripts/release # Full release: tests, build, PyPI upload, git tag, marketplace bundle
|
|
432
|
+
scripts/release --dry-run # Check-only: tests, build, twine check, smoke install; skip upload
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
The `--dry-run` flag is useful to validate the entire workflow before committing tags and pushing to PyPI.
|
|
436
|
+
|
|
470
437
|
### Contributing guidelines
|
|
471
438
|
|
|
472
439
|
When adding new content:
|
|
473
440
|
|
|
474
441
|
1. **Edit source files** — all changes go in `agent_notes/data/` directory
|
|
475
|
-
2. **
|
|
476
|
-
3. **
|
|
477
|
-
4. **
|
|
478
|
-
5. **
|
|
479
|
-
6. **
|
|
480
|
-
7. **Stay
|
|
481
|
-
|
|
442
|
+
2. **Rebuild and test** — `agent-notes install` rebuilds `dist/` and reinstalls; `pytest -q` auto-builds first
|
|
443
|
+
3. **Validate** — `agent-notes validate` before committing
|
|
444
|
+
4. **Keep it generic** — remove app-specific references
|
|
445
|
+
5. **Show examples** — include code samples with explanations
|
|
446
|
+
6. **Stay modular** — each skill should be independently usable
|
|
447
|
+
7. **Stay concise** — agent prompts under 60 lines
|
|
448
|
+
|
|
449
|
+
(Note: `python -m build` is only needed to produce a release wheel for distribution, not for local development.)
|
|
482
450
|
|
|
483
451
|
### Architecture
|
|
484
452
|
|