agent-notes 2.10.0__tar.gz → 2.12.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.10.0 → agent_notes-2.12.0}/PKG-INFO +2 -3
- agent_notes-2.12.0/agent_notes/VERSION +1 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/__init__.py +7 -7
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/scripts/_claude_backend.py +21 -4
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/diagnostics/_display.py +2 -2
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes.egg-info/PKG-INFO +2 -3
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes.egg-info/top_level.txt +1 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/pyproject.toml +1 -2
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_uninstall_command.py +1 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/scripts/test_cost_report_scoping.py +66 -0
- agent_notes-2.10.0/agent_notes/VERSION +0 -1
- {agent_notes-2.10.0 → agent_notes-2.12.0}/LICENSE +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/README.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/__main__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/cli.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/_install_helpers.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/build.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/config.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/doctor.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/info.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/install.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/list.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/memory.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/regenerate.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/set_role.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/uninstall.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/update.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/validate.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/commands/wizard.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/config.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/agents.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/analyst.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/api-reviewer.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/architect.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/coder.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/database-specialist.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/debugger.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/devil.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/devops.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/explorer.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/integrations.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/lead.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/performance-profiler.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/refactorer.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/reviewer.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/security-auditor.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/shared/cost_reporting.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/system-auditor.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/tech-writer.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/test-runner.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/agents/test-writer.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/cli/claude.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/cli/copilot.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/cli/opencode.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/commands/brainstorm.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/commands/debug.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/commands/review.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/global-claude.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/global-copilot.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/global-opencode.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/hooks/session-context.md.tpl +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-haiku-4-5.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-opus-4-1.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-opus-4-5.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-opus-4-6.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-opus-4-7.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-sonnet-4-5.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-sonnet-4-6.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/models/claude-sonnet-4.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/plugin/claude.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/plugin/opencode-index.js.template +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/plugin/opencode.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/pricing.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/roles/orchestrator.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/roles/reasoner.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/roles/scout.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/roles/worker.yaml +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/rules/code-quality.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/rules/safety.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/brainstorming/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/caveman/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/code-review/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/debugging-protocol/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/docker-compose/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/docker-compose-advanced/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/docker-dockerfile/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/docker-dockerfile-languages/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/git/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/grill-me/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/grill-with-docs/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/improve-codebase-architecture/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/obsidian-memory/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-active-storage/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-broadcasting/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-concerns/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-controllers/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-controllers-advanced/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-helpers/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-initializers/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-javascript/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-jobs/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-kamal/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-lib/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-mailers/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-migrations/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-models/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-models-advanced/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-routes/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-style/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-testing-controllers/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-testing-models/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-testing-system/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-validations/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-view-components/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-view-components-advanced/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-views/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-views-advanced/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/refactoring-protocol/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/setup-project-context/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/tdd/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/zoom-out/SKILL.md +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/claude.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/opencode.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/doctor_checks.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/agent.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/cli_backend.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/diagnostics.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/diff.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/model.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/role.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/rule.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/skill.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/domain/state.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/install_state.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/_base.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/agent_registry.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/cli_registry.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/model_registry.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/role_registry.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/rule_registry.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/registries/skill_registry.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/scripts/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/scripts/_formatting.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/scripts/_opencode_backend.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/scripts/_pricing.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/scripts/cost_report.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/credentials.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/diagnostics/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/diagnostics/_checks.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/diagnostics/_fix.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/diff.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/fs.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/install_state_builder.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/installer.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/memory_backend.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/rendering.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/session_context.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/settings_writer.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/state_store.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/ui.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/user_config.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/services/validation.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/state.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes.egg-info/SOURCES.txt +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes.egg-info/dependency_links.txt +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes.egg-info/entry_points.txt +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes.egg-info/requires.txt +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/setup.cfg +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/conftest.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_config_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_doctor_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_info_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_install_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_list_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_regenerate_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_update_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_validate_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/memory/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/memory/test_memory_command.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/scripts/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/scripts/test_release_script.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/build_output/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/build_output/test_build_output.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/install/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/install/test_install_methods.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/plugin_builders/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/plugin_builders/test_plugin_builders.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/plugins/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/plugins/claude/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/plugins/claude/test_agents.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/plugins/test_skills.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/test_cost_report_subcommand.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/test_count_agents.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/test_wizard_orchestrator_skip.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/test_wizard_preflight.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/registries/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/registries/test_registries.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/scripts/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/scripts/test_cost_report.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/scripts/test_formatting_tty.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/scripts/test_time_aggregation.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/__init__.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_build_functions.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_credentials.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_fs.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_installer_plan.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_memory_backend.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_memory_backend_io.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_rendering_includes.py +0 -0
- {agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/services/test_settings_writer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-notes
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.12.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
|
|
@@ -13,14 +13,13 @@ Classifier: Development Status :: 4 - Beta
|
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
19
|
Classifier: Topic :: Software Development :: Code Generators
|
|
21
20
|
Classifier: Topic :: Utilities
|
|
22
21
|
Classifier: Environment :: Console
|
|
23
|
-
Requires-Python: >=3.
|
|
22
|
+
Requires-Python: >=3.10
|
|
24
23
|
Description-Content-Type: text/markdown
|
|
25
24
|
License-File: LICENSE
|
|
26
25
|
Requires-Dist: pyyaml>=6.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.12.0
|
|
@@ -6,16 +6,16 @@ Commands MUST NOT import other commands (use services to share logic).
|
|
|
6
6
|
Exception: install/uninstall/info share helpers via _install_helpers.py since
|
|
7
7
|
they are sibling members of one logical command group.
|
|
8
8
|
"""
|
|
9
|
-
from .install import install
|
|
10
|
-
from .uninstall import uninstall
|
|
11
9
|
from .info import show_info
|
|
12
|
-
from .build import build
|
|
13
|
-
from .doctor import doctor
|
|
14
|
-
from .validate import validate
|
|
15
|
-
from .update import update
|
|
16
|
-
from .regenerate import regenerate
|
|
17
10
|
from .set_role import set_role
|
|
18
11
|
from .wizard import interactive_install
|
|
12
|
+
from . import install
|
|
13
|
+
from . import uninstall
|
|
14
|
+
from . import build
|
|
15
|
+
from . import doctor
|
|
16
|
+
from . import validate
|
|
17
|
+
from . import update
|
|
18
|
+
from . import regenerate
|
|
19
19
|
from . import list as list_cmd
|
|
20
20
|
from . import memory as memory_cmd
|
|
21
21
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Session cost report for Claude Code — reads JSONL transcripts."""
|
|
2
|
+
from __future__ import annotations
|
|
2
3
|
import json
|
|
3
4
|
from datetime import datetime, timezone
|
|
4
5
|
from pathlib import Path
|
|
@@ -60,10 +61,26 @@ def _load_configured_models() -> dict[str, str]:
|
|
|
60
61
|
try:
|
|
61
62
|
with state_path.open() as f:
|
|
62
63
|
data = json.load(f)
|
|
63
|
-
|
|
64
|
-
if
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
global_scope = data.get("global")
|
|
65
|
+
if global_scope:
|
|
66
|
+
role_models = (
|
|
67
|
+
global_scope.get("clis", {})
|
|
68
|
+
.get("claude", {})
|
|
69
|
+
.get("role_models")
|
|
70
|
+
)
|
|
71
|
+
if isinstance(role_models, dict):
|
|
72
|
+
return role_models
|
|
73
|
+
# Global absent or empty — fall back to local scope for cwd
|
|
74
|
+
local_scope = (
|
|
75
|
+
data.get("local", {})
|
|
76
|
+
.get(str(Path.cwd()), {})
|
|
77
|
+
.get("clis", {})
|
|
78
|
+
.get("claude", {})
|
|
79
|
+
.get("role_models")
|
|
80
|
+
)
|
|
81
|
+
if isinstance(local_scope, dict):
|
|
82
|
+
return local_scope
|
|
83
|
+
return {}
|
|
67
84
|
except (FileNotFoundError, KeyError, json.JSONDecodeError):
|
|
68
85
|
return {}
|
|
69
86
|
|
|
@@ -102,7 +102,7 @@ def _check_config(backend, scope: str) -> tuple:
|
|
|
102
102
|
def _check_role_models(state):
|
|
103
103
|
"""Display role→model assignments and check compatibility."""
|
|
104
104
|
from ...model_registry import load_model_registry
|
|
105
|
-
from ...
|
|
105
|
+
from ...registries.cli_registry import load_registry
|
|
106
106
|
from ...role_registry import load_role_registry
|
|
107
107
|
from ...config import Color
|
|
108
108
|
|
|
@@ -218,7 +218,7 @@ def print_summary(scope: str):
|
|
|
218
218
|
print(f"Checking AgentNotes {label} installation:")
|
|
219
219
|
print("")
|
|
220
220
|
|
|
221
|
-
from ...
|
|
221
|
+
from ...registries.cli_registry import load_registry
|
|
222
222
|
registry = load_registry()
|
|
223
223
|
for backend in registry.all():
|
|
224
224
|
if not backend.supports("agents"):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-notes
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.12.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
|
|
@@ -13,14 +13,13 @@ Classifier: Development Status :: 4 - Beta
|
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
19
|
Classifier: Topic :: Software Development :: Code Generators
|
|
21
20
|
Classifier: Topic :: Utilities
|
|
22
21
|
Classifier: Environment :: Console
|
|
23
|
-
Requires-Python: >=3.
|
|
22
|
+
Requires-Python: >=3.10
|
|
24
23
|
Description-Content-Type: text/markdown
|
|
25
24
|
License-File: LICENSE
|
|
26
25
|
Requires-Dist: pyyaml>=6.0
|
|
@@ -9,7 +9,7 @@ description = "AI agent configuration manager for Claude Code, OpenCode, and Cop
|
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Eugene Naumov", email = "min.verkligheten@gmail.com" }]
|
|
11
11
|
license = "MIT"
|
|
12
|
-
requires-python = ">=3.
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
13
|
dependencies = ["pyyaml>=6.0", "tomli>=1.1.0; python_version < '3.11'"]
|
|
14
14
|
keywords = ["claude", "claude-code", "opencode", "ai-agent", "agent", "configuration", "claude-cli", "github-copilot"]
|
|
15
15
|
classifiers = [
|
|
@@ -17,7 +17,6 @@ classifiers = [
|
|
|
17
17
|
"Intended Audience :: Developers",
|
|
18
18
|
"Operating System :: OS Independent",
|
|
19
19
|
"Programming Language :: Python :: 3",
|
|
20
|
-
"Programming Language :: Python :: 3.9",
|
|
21
20
|
"Programming Language :: Python :: 3.10",
|
|
22
21
|
"Programming Language :: Python :: 3.11",
|
|
23
22
|
"Programming Language :: Python :: 3.12",
|
|
@@ -214,6 +214,72 @@ class TestLoadConfiguredModels:
|
|
|
214
214
|
|
|
215
215
|
assert result == {}
|
|
216
216
|
|
|
217
|
+
def test_returns_local_role_models_when_global_is_none(self, tmp_path, monkeypatch):
|
|
218
|
+
"""Regression: global uninstalled leaves data["global"] as None; local install must be used."""
|
|
219
|
+
state_file = tmp_path / "state.json"
|
|
220
|
+
cwd = str(tmp_path)
|
|
221
|
+
state_file.write_text(json.dumps({
|
|
222
|
+
"global": None,
|
|
223
|
+
"local": {
|
|
224
|
+
cwd: {
|
|
225
|
+
"clis": {
|
|
226
|
+
"claude": {
|
|
227
|
+
"role_models": {
|
|
228
|
+
"lead": "claude-opus-4-7",
|
|
229
|
+
"coder": "claude-sonnet-4-6",
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}))
|
|
236
|
+
monkeypatch.setattr("agent_notes.scripts._claude_backend._state_file", lambda: state_file)
|
|
237
|
+
monkeypatch.setattr("pathlib.Path.cwd", classmethod(lambda cls: tmp_path))
|
|
238
|
+
|
|
239
|
+
result = _claude_backend._load_configured_models()
|
|
240
|
+
|
|
241
|
+
assert result == {"lead": "claude-opus-4-7", "coder": "claude-sonnet-4-6"}
|
|
242
|
+
|
|
243
|
+
def test_returns_empty_dict_when_both_global_and_local_absent(self, tmp_path, monkeypatch):
|
|
244
|
+
"""When global is None and local has no entry for cwd, return empty dict."""
|
|
245
|
+
state_file = tmp_path / "state.json"
|
|
246
|
+
state_file.write_text(json.dumps({"global": None, "local": {}}))
|
|
247
|
+
monkeypatch.setattr("agent_notes.scripts._claude_backend._state_file", lambda: state_file)
|
|
248
|
+
monkeypatch.setattr("pathlib.Path.cwd", classmethod(lambda cls: tmp_path))
|
|
249
|
+
|
|
250
|
+
result = _claude_backend._load_configured_models()
|
|
251
|
+
|
|
252
|
+
assert result == {}
|
|
253
|
+
|
|
254
|
+
def test_returns_global_role_models_when_global_is_present(self, tmp_path, monkeypatch):
|
|
255
|
+
"""Regression guard: global install still takes priority when present."""
|
|
256
|
+
state_file = tmp_path / "state.json"
|
|
257
|
+
cwd = str(tmp_path)
|
|
258
|
+
state_file.write_text(json.dumps({
|
|
259
|
+
"global": {
|
|
260
|
+
"clis": {
|
|
261
|
+
"claude": {
|
|
262
|
+
"role_models": {"lead": "claude-opus-4-7"}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"local": {
|
|
267
|
+
cwd: {
|
|
268
|
+
"clis": {
|
|
269
|
+
"claude": {
|
|
270
|
+
"role_models": {"lead": "claude-sonnet-4-6"}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}))
|
|
276
|
+
monkeypatch.setattr("agent_notes.scripts._claude_backend._state_file", lambda: state_file)
|
|
277
|
+
monkeypatch.setattr("pathlib.Path.cwd", classmethod(lambda cls: tmp_path))
|
|
278
|
+
|
|
279
|
+
result = _claude_backend._load_configured_models()
|
|
280
|
+
|
|
281
|
+
assert result == {"lead": "claude-opus-4-7"}
|
|
282
|
+
|
|
217
283
|
|
|
218
284
|
class TestConfiguredHeaderLine:
|
|
219
285
|
def _write_state(self, state_file: Path, role_models: dict) -> None:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.10.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/plugin/opencode-index.js.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/debugging-protocol/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/docker-compose-advanced/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/docker-dockerfile/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-active-storage/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-broadcasting/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-controllers/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-initializers/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-models-advanced/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-testing-controllers/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-testing-models/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-testing-system/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-validations/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-view-components/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/rails-views-advanced/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/refactoring-protocol/SKILL.md
RENAMED
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/skills/setup-project-context/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/agent_notes/data/templates/frontmatter/opencode.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_regenerate_command.py
RENAMED
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/tests/functional/commands/test_validate_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/build_output/test_build_output.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/tests/integration/plugin_builders/test_plugin_builders.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/test_cost_report_subcommand.py
RENAMED
|
File without changes
|
|
File without changes
|
{agent_notes-2.10.0 → agent_notes-2.12.0}/tests/unit/commands/test_wizard_orchestrator_skip.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|