agent-notes 2.33.0__tar.gz → 2.33.1__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.33.0 → agent_notes-2.33.1}/PKG-INFO +92 -12
- {agent_notes-2.33.0 → agent_notes-2.33.1}/README.md +88 -8
- agent_notes-2.33.1/agent_notes/VERSION +1 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/cli.py +55 -15
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/_install_helpers.py +1 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/build.py +2 -2
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/config.py +34 -24
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/doctor.py +36 -4
- agent_notes-2.33.1/agent_notes/commands/hook/__init__.py +147 -0
- agent_notes-2.33.0/agent_notes/commands/hook.py → agent_notes-2.33.1/agent_notes/commands/hook/_guard.py +152 -213
- agent_notes-2.33.1/agent_notes/commands/hook/_memory.py +35 -0
- agent_notes-2.33.1/agent_notes/commands/hook/_session.py +30 -0
- agent_notes-2.33.1/agent_notes/commands/memory/__init__.py +15 -0
- agent_notes-2.33.1/agent_notes/commands/models.py +210 -0
- agent_notes-2.33.1/agent_notes/commands/plugins.py +66 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/regenerate.py +0 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/validate.py +13 -4
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/__init__.py +124 -52
- agent_notes-2.33.1/agent_notes/commands/wizard/capabilities.py +125 -0
- agent_notes-2.33.1/agent_notes/commands/wizard/capability_registry.py +54 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/execute.py +26 -25
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/orchestrator.py +25 -9
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/config.py +2 -7
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/constants.py +0 -11
- {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_claude_backend.py +1 -1
- {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_opencode_backend.py +1 -1
- {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_pricing.py +0 -9
- {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/cost_report.py +5 -49
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/agents.yaml +0 -20
- agent_notes-2.33.1/agent_notes/data/agents/lead.md +32 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/guardrails.md +2 -2
- agent_notes-2.33.1/agent_notes/data/agents/shared/skeptical_verification.md +7 -0
- agent_notes-2.33.1/agent_notes/data/catalog/rules.yaml +86 -0
- agent_notes-2.33.1/agent_notes/data/catalog/seed.json +84 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/claude.yaml +1 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/codex.yaml +1 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/copilot.yaml +2 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/opencode.yaml +2 -2
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-claude.md +2 -29
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/plugin/claude.yaml +0 -3
- agent_notes-2.33.1/agent_notes/data/plugins/cost-report/plugin.yaml +8 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/pricing.yaml +22 -5
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/rules/safety.md +1 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/ingest/SKILL.md +16 -84
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/migrate-memory/SKILL.md +5 -72
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/obsidian-memory/SKILL.md +3 -3
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/base.cpython-314.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/base.py +9 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/agent.py +2 -1
- agent_notes-2.33.1/agent_notes/domain/capability.py +35 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/cli_backend.py +1 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/model.py +1 -1
- agent_notes-2.33.1/agent_notes/domain/plugin.py +34 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/skill.py +2 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/state.py +3 -2
- agent_notes-2.33.1/agent_notes/memory/__init__.py +1 -0
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/__init__.py +2 -25
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/_common.py +10 -15
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/migrate.py +2 -2
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/notes.py +9 -78
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/reset.py +0 -36
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/transfer.py +0 -8
- {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/vault.py +5 -25
- agent_notes-2.33.1/agent_notes/memory/install.py +127 -0
- agent_notes-2.33.1/agent_notes/memory/instructions.py +130 -0
- {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/local_backend.py +1 -1
- {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/memory_backend.py +33 -14
- {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/obsidian_backend.py +99 -21
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/agent_registry.py +9 -2
- agent_notes-2.33.1/agent_notes/registries/catalog_loader.py +223 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/cli_registry.py +7 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/model_registry.py +38 -12
- agent_notes-2.33.1/agent_notes/registries/plugin_registry.py +107 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/skill_registry.py +21 -10
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_checks.py +187 -24
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/install_executor.py +3 -11
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/installer.py +71 -63
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/model_resolver.py +35 -38
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/rendering.py +36 -126
- agent_notes-2.33.1/agent_notes/services/stability.py +53 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/state_store.py +4 -2
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/user_config.py +11 -2
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/PKG-INFO +92 -12
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/SOURCES.txt +81 -59
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/requires.txt +1 -3
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/top_level.txt +0 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/pyproject.toml +5 -5
- agent_notes-2.33.1/tests/conftest.py +68 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_config_command.py +1 -1
- agent_notes-2.33.1/tests/functional/commands/test_plugins_cli.py +294 -0
- agent_notes-2.33.1/tests/functional/commands/test_stability_cli.py +29 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_uninstall_full_hooks.py +9 -3
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_wizard_happy_path.py +103 -9
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/test_skills.py +1 -1
- agent_notes-2.33.1/tests/unit/commands/test_capability_registry.py +53 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_cost_report_subcommand.py +20 -18
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_guard_credentials.py +232 -2
- agent_notes-2.33.1/tests/unit/commands/test_hook_constants.py +80 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_add_description.py +5 -5
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_imports.py +13 -27
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_migrate.py +1 -1
- agent_notes-2.33.1/tests/unit/commands/test_models_command.py +246 -0
- agent_notes-2.33.1/tests/unit/commands/test_plugins_command.py +264 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_precompact_memory_bridge.py +3 -13
- agent_notes-2.33.1/tests/unit/commands/test_toggle_capabilities.py +32 -0
- agent_notes-2.33.1/tests/unit/commands/test_validate_line_limit.py +13 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_accept_all_models.py +59 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_backend_config.py +52 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_backend_step.py +44 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_confirm_build_order.py +2 -2
- agent_notes-2.33.1/tests/unit/commands/test_wizard_memory_path_validation.py +21 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_provider_step.py +50 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_role_model_default.py +198 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_steps.py +53 -38
- agent_notes-2.33.1/tests/unit/commands/test_wizard_toggle_step.py +19 -0
- agent_notes-2.33.1/tests/unit/commands/test_wizard_total_steps.py +51 -0
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cache_write_pricing.py +9 -9
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cost_report.py +2 -8
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cost_report_scoping.py +28 -30
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_formatting_tty.py +4 -4
- agent_notes-2.33.1/tests/unit/cost/test_hook_constant.py +30 -0
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_opencode_backend_connection.py +2 -2
- agent_notes-2.33.1/tests/unit/cost/test_opencode_backend_pricing.py +310 -0
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_time_aggregation.py +7 -7
- agent_notes-2.33.1/tests/unit/domain/test_capability.py +19 -0
- agent_notes-2.33.1/tests/unit/memory/test_stability_memory.py +25 -0
- agent_notes-2.33.1/tests/unit/registries/test_catalog_equivalence.py +315 -0
- agent_notes-2.33.1/tests/unit/registries/test_plugin_equivalence.py +105 -0
- agent_notes-2.33.1/tests/unit/registries/test_plugin_registry.py +56 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/registries/test_registries.py +81 -57
- agent_notes-2.33.1/tests/unit/registries/test_stability_filtering.py +60 -0
- agent_notes-2.33.1/tests/unit/registries/test_stability_parsing.py +98 -0
- agent_notes-2.33.1/tests/unit/registries/test_stability_skills_agents.py +30 -0
- agent_notes-2.33.1/tests/unit/scripts/__init__.py +0 -0
- agent_notes-2.33.1/tests/unit/services/__init__.py +0 -0
- agent_notes-2.33.1/tests/unit/services/test_cost_report_plugin_migration.py +39 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_generate_agent_files_pins.py +26 -26
- agent_notes-2.33.1/tests/unit/services/test_generate_agent_files_stability.py +48 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_credential_guard.py +1 -1
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_hooks.py +21 -16
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_precompact_hook.py +0 -14
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_local_backend.py +2 -2
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_memory_backend.py +2 -2
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_memory_backend_io.py +15 -15
- agent_notes-2.33.1/tests/unit/services/test_memory_config_migration.py +47 -0
- agent_notes-2.33.1/tests/unit/services/test_memory_instructions.py +100 -0
- agent_notes-2.33.1/tests/unit/services/test_memory_router.py +78 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_model_resolver_characterization.py +168 -58
- agent_notes-2.33.1/tests/unit/services/test_obsidian_strategy.py +216 -0
- agent_notes-2.33.1/tests/unit/services/test_plugin_install.py +165 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_rendering_includes.py +4 -5
- agent_notes-2.33.1/tests/unit/services/test_stability.py +34 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_user_config_cost_report.py +53 -32
- agent_notes-2.33.1/tests/unit/services/test_user_config_xdg.py +58 -0
- agent_notes-2.33.1/tests/unit/services/test_wiki_migration_error.py +114 -0
- agent_notes-2.33.1/tests/unit/templates/__init__.py +0 -0
- agent_notes-2.33.1/tests/unit/test_cache_isolation.py +107 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/test_memory_dir_for_backend.py +2 -30
- agent_notes-2.33.0/agent_notes/VERSION +0 -1
- agent_notes-2.33.0/agent_notes/commands/memory/wiki.py +0 -153
- agent_notes-2.33.0/agent_notes/data/agents/lead.md +0 -47
- agent_notes-2.33.0/agent_notes/data/agents/shared/wiki_compile.md +0 -18
- agent_notes-2.33.0/agent_notes/data/agents/wiki-compiler.md +0 -121
- agent_notes-2.33.0/agent_notes/data/models/claude-fable-5.yaml +0 -15
- agent_notes-2.33.0/agent_notes/data/models/claude-haiku-4-5.yaml +0 -15
- agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-1.yaml +0 -16
- agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-5.yaml +0 -16
- agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-6.yaml +0 -16
- agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-7.yaml +0 -16
- agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-8.yaml +0 -15
- agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-4-5.yaml +0 -16
- agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-4-6.yaml +0 -15
- agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-4.yaml +0 -16
- agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-5.yaml +0 -15
- agent_notes-2.33.0/agent_notes/data/models/gpt-5-4-mini.yaml +0 -14
- agent_notes-2.33.0/agent_notes/data/models/gpt-5-4.yaml +0 -14
- agent_notes-2.33.0/agent_notes/data/models/gpt-5-5.yaml +0 -14
- agent_notes-2.33.0/agent_notes/data/skills/brainstorming/SKILL.md +0 -57
- agent_notes-2.33.0/agent_notes/data/skills/tdd/SKILL.md +0 -37
- agent_notes-2.33.0/agent_notes/data/skills/tdd/mocking.md +0 -59
- agent_notes-2.33.0/agent_notes/data/skills/tdd/tests.md +0 -77
- agent_notes-2.33.0/agent_notes/data/skills/writing-great-skills/GLOSSARY.md +0 -201
- agent_notes-2.33.0/agent_notes/data/skills/writing-great-skills/SKILL.md +0 -84
- agent_notes-2.33.0/agent_notes/doctor_checks.py +0 -192
- agent_notes-2.33.0/agent_notes/services/wiki/__init__.py +0 -25
- agent_notes-2.33.0/agent_notes/services/wiki/_wiki_utils.py +0 -196
- agent_notes-2.33.0/agent_notes/services/wiki/wiki_index.py +0 -171
- agent_notes-2.33.0/agent_notes/services/wiki/wiki_ingest.py +0 -382
- agent_notes-2.33.0/agent_notes/services/wiki/wiki_lint.py +0 -176
- agent_notes-2.33.0/agent_notes/services/wiki/wiki_query.py +0 -103
- agent_notes-2.33.0/agent_notes/services/wiki/wiki_storage.py +0 -125
- agent_notes-2.33.0/agent_notes/services/wiki_backend.py +0 -3
- agent_notes-2.33.0/tests/conftest.py +0 -35
- agent_notes-2.33.0/tests/unit/commands/test_wizard_role_model_default.py +0 -108
- agent_notes-2.33.0/tests/unit/scripts/test_opencode_backend_pricing.py +0 -100
- agent_notes-2.33.0/tests/unit/services/test_memory_router.py +0 -100
- agent_notes-2.33.0/tests/unit/services/test_wiki_atomic_write.py +0 -73
- agent_notes-2.33.0/tests/unit/services/test_wiki_backend.py +0 -1361
- agent_notes-2.33.0/tests/unit/services/test_wiki_imports.py +0 -222
- {agent_notes-2.33.0 → agent_notes-2.33.1}/LICENSE +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/__main__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/info.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/install.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/list.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/set_role.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/uninstall.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/_common.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/cost_report.py +0 -0
- {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/__init__.py +0 -0
- {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_formatting.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/analyst.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/api-reviewer.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/architect.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/coder.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/database-specialist.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/debugger.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/devil.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/devops.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/explorer.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/integrations.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/performance-profiler.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/refactorer.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/reviewer.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/security-auditor.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/cost_reporting.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/execution.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/hard_limits.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/phase0.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/pipelines.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/review.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/verification.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/system-auditor.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/tech-writer.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/test-runner.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/test-writer.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/commands/brainstorm.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/commands/debug.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/commands/review.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-codex.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-copilot.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-opencode.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/hooks/session-context.md.tpl +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/plugin/opencode-index.js.template +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/plugin/opencode.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/providers/anthropic.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/providers/openai.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/orchestrator.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/reasoner.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/scout.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/worker.yaml +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/rules/code-quality.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/rules/no-ai-attribution.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/chrome-test/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/code-review/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/DEEPENING.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/DESIGN-IT-TWICE.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/diagnosing-bugs/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/compose.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/dockerfile.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/ADR-FORMAT.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/CONTEXT-FORMAT.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/git/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/grill-me/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/grill-with-docs/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/grilling/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/handoff/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/improve-codebase-architecture/HTML-REPORT.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/improve-codebase-architecture/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/LOGIC.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/UI.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/controllers.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/frontend.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/infra.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/models.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/testing.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/views.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/refactoring-protocol/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/research/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rsi/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/domain.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-github.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-gitlab.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-local.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/triage-labels.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/to-spec/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/to-tickets/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/AGENT-BRIEF.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/OUT-OF-SCOPE.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/wayfinder/SKILL.md +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/__pycache__/__init__.cpython-312.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-312.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-312.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-312.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-312.pyc +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/claude.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/codex.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/opencode.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/diagnostics.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/diff.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/provider.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/role.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/rule.py +0 -0
- {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/memory_router.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/_base.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/provider_registry.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/role_registry.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/rule_registry.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/_memory_utils.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/counts.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/credentials.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_display.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_fix.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diff.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/fs.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/install_plan.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/install_state_builder.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/migrations/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/session_context.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/settings_writer.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/ui.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/validation.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/dependency_links.txt +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/entry_points.txt +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/setup.cfg +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_doctor_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_info_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_install_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_install_roundtrip.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_list_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_regenerate_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_uninstall_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_validate_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_validate_path_filter.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/memory/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/memory/test_memory_add_local_backend.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/memory/test_memory_command.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/scripts/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/scripts/test_release_script.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/build_output/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/build_output/test_build_output.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/install/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/install/test_install_methods.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/plugin_builders/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/plugin_builders/test_plugin_builders.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/claude/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/claude/test_agents.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/codex/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/codex/test_agents.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_count_agents.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_info.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_install_profile_rerender.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_effort_selection.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_imports.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_install_summary_display.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_orchestrator_skip.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_preflight.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_role_ordering.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/wizard/test_cost_report_step.py +0 -0
- {agent_notes-2.33.0/tests/unit/registries → agent_notes-2.33.1/tests/unit/cost}/__init__.py +0 -0
- {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/domain}/__init__.py +0 -0
- {agent_notes-2.33.0/tests/unit/services → agent_notes-2.33.1/tests/unit/memory}/__init__.py +0 -0
- {agent_notes-2.33.0/tests/unit/templates → agent_notes-2.33.1/tests/unit/registries}/__init__.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/registries/test_cli_registry.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/registries/test_provider_registry.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_build_functions.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_credential_filter.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_credentials.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_fs.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_codex.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_hook_quoting.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_plan.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_resolve_effort.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_session_context.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_settings_writer.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_skill_filtering.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_state_store.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_validation.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/templates/test_claude_frontmatter.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/templates/test_codex_frontmatter.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/templates/test_opencode_frontmatter.py +0 -0
- {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/test_import_health.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-notes
|
|
3
|
-
Version: 2.33.
|
|
3
|
+
Version: 2.33.1
|
|
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,21 +13,21 @@ 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.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Classifier: Topic :: Software Development :: Code Generators
|
|
20
20
|
Classifier: Topic :: Utilities
|
|
21
21
|
Classifier: Environment :: Console
|
|
22
|
-
Requires-Python: >=3.
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
Requires-Dist: pyyaml>=6.0
|
|
26
|
-
Requires-Dist: tomli>=1.1.0; python_version < "3.11"
|
|
27
26
|
Requires-Dist: tomli-w>=1.0.0
|
|
28
27
|
Provides-Extra: dev
|
|
29
28
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
30
29
|
Requires-Dist: build>=1.0; extra == "dev"
|
|
30
|
+
Requires-Dist: twine>=5.0; extra == "dev"
|
|
31
31
|
Dynamic: license-file
|
|
32
32
|
|
|
33
33
|
# agent-notes
|
|
@@ -37,14 +37,16 @@ AI agent configuration manager for Claude Code and OpenCode — orchestrates a t
|
|
|
37
37
|
## Quick Start
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
|
|
40
|
+
pipx install agent-notes
|
|
41
41
|
agent-notes install # interactive wizard guides you through setup
|
|
42
42
|
agent-notes doctor
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
> No `pipx`? Use `uv tool install agent-notes` instead, or see **Troubleshooting: externally-managed-environment** below.
|
|
46
|
+
|
|
45
47
|
**What's Included**
|
|
46
48
|
- 19 specialized AI subagents (Opus reasons, Sonnet executes, Haiku explores)
|
|
47
|
-
-
|
|
49
|
+
- 25 on-demand skills (Rails, Docker, Git, Kamal, Process)
|
|
48
50
|
- Global rules and guardrails (including a ban on AI self-attribution in commits/PRs)
|
|
49
51
|
- Agent memory with 3 storage options (Local, Obsidian, Wiki)
|
|
50
52
|
- Configuration for Claude Code, OpenCode, and GitHub Copilot
|
|
@@ -63,6 +65,13 @@ pipx install agent-notes
|
|
|
63
65
|
agent-notes install
|
|
64
66
|
```
|
|
65
67
|
|
|
68
|
+
**uv tool (lightweight alternative to pipx):**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv tool install agent-notes
|
|
72
|
+
agent-notes install
|
|
73
|
+
```
|
|
74
|
+
|
|
66
75
|
**venv + pip (if you prefer to manage your own environment):**
|
|
67
76
|
|
|
68
77
|
```bash
|
|
@@ -96,6 +105,7 @@ agent-notes uninstall && pipx uninstall agent-notes && pipx install agent-notes
|
|
|
96
105
|
|
|
97
106
|
With venv:
|
|
98
107
|
```bash
|
|
108
|
+
source .venv/bin/activate
|
|
99
109
|
agent-notes uninstall && pip uninstall agent-notes && pip install agent-notes && agent-notes install
|
|
100
110
|
```
|
|
101
111
|
|
|
@@ -119,6 +129,38 @@ To produce a release artifact (wheel for distribution), use `python -m build` +
|
|
|
119
129
|
|
|
120
130
|
The plugin runs a `session.start` hook that surfaces agent-notes context to the CLI session. It does **not** include the full `agent-notes` CLI (wizard, doctor, config, memory, etc.). For those, use install method 1 or 2.
|
|
121
131
|
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
**Note on two meanings of "plugin":** This distribution plugin (the `.claude-plugin/` marketplace artifact) is distinct from **agent-notes plugins** — an internal toggleable subsystem documented below. See [Plugins](#plugins) to tell them apart.
|
|
135
|
+
|
|
136
|
+
### Plugins (toggleable subsystems)
|
|
137
|
+
|
|
138
|
+
Agent-notes includes toggleable subsystems (plugins) that can be enabled or disabled post-install. Currently, only **cost-report** is available as a plugin.
|
|
139
|
+
|
|
140
|
+
**List available plugins:**
|
|
141
|
+
```bash
|
|
142
|
+
agent-notes plugins list
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Example output:
|
|
146
|
+
```
|
|
147
|
+
cost-report [off] Emit a per-session token cost report at the Stop hook
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Enable or disable a plugin:**
|
|
151
|
+
```bash
|
|
152
|
+
agent-notes plugins enable cost-report # Enable cost-report
|
|
153
|
+
agent-notes plugins disable cost-report # Disable cost-report
|
|
154
|
+
agent-notes install # Apply changes
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Show plugin details:**
|
|
158
|
+
```bash
|
|
159
|
+
agent-notes plugins info cost-report
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
After enabling or disabling a plugin, run `agent-notes install` to apply the changes. For details, see `docs/WRITING_A_PLUGIN.md`.
|
|
163
|
+
|
|
122
164
|
### API keys
|
|
123
165
|
|
|
124
166
|
Provider API keys live in `~/.agent-notes/credentials.toml` (mode 0600, never committed). Add or update via:
|
|
@@ -135,6 +177,46 @@ agent-notes config provider openrouter # prints "configured" or "no key"
|
|
|
135
177
|
|
|
136
178
|
</details>
|
|
137
179
|
|
|
180
|
+
### Troubleshooting: externally-managed-environment
|
|
181
|
+
|
|
182
|
+
On Arch, Debian, Ubuntu, and other distributions that mark the system Python as externally-managed (PEP 668), you may see an error like:
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
error: externally-managed-environment
|
|
186
|
+
|
|
187
|
+
× This environment is externally managed
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
This error occurs because `pip` refuses to install into the system Python. **Solution:** use an isolated package manager instead:
|
|
191
|
+
|
|
192
|
+
1. **Recommended — pipx:**
|
|
193
|
+
```bash
|
|
194
|
+
pipx install agent-notes
|
|
195
|
+
agent-notes install
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
2. **Alternative — uv tool:**
|
|
199
|
+
```bash
|
|
200
|
+
uv tool install agent-notes
|
|
201
|
+
agent-notes install
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
3. **Alternative — Create a venv first:**
|
|
205
|
+
```bash
|
|
206
|
+
python -m venv .venv && source .venv/bin/activate
|
|
207
|
+
pip install agent-notes
|
|
208
|
+
agent-notes install
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Last resort only** (discouraged — system packages may conflict):
|
|
212
|
+
```bash
|
|
213
|
+
pip install --user agent-notes
|
|
214
|
+
# or
|
|
215
|
+
pip install --break-system-packages agent-notes
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
138
220
|
<details>
|
|
139
221
|
<summary>Uninstall</summary>
|
|
140
222
|
|
|
@@ -294,7 +376,7 @@ agent-notes memory lint # health-check
|
|
|
294
376
|
<details>
|
|
295
377
|
<summary>Skills</summary>
|
|
296
378
|
|
|
297
|
-
|
|
379
|
+
25 on-demand knowledge modules across Rails, Docker, Kamal, Git, and Process. Run `agent-notes list skills` for the current list, or browse `agent_notes/data/skills/`. For additional workflows (brainstorming, test-driven development, writing skills), see the complementary [Superpowers](https://github.com/obra/superpowers) plugin.
|
|
298
380
|
|
|
299
381
|
The session context hook auto-generates a skill index from SKILL.md frontmatter at install time, so agents always know what skills are available without loading full skill content. This keeps context overhead low while maintaining skill discoverability.
|
|
300
382
|
|
|
@@ -311,14 +393,13 @@ Load the docker-compose skill for multi-service setup
|
|
|
311
393
|
|---|---|---|
|
|
312
394
|
| Misalignment | Claude starts building before the problem is resolved | `/grill-me`, `/grilling`, `/grill-with-docs` |
|
|
313
395
|
| Vague scope | Work starts without a spec or ticketed breakdown | `/to-spec`, `/to-tickets`, `/wayfinder`, `/triage` |
|
|
314
|
-
| Broken code | Claude codes without a feedback loop or evidence trail | `/
|
|
396
|
+
| Broken code | Claude codes without a feedback loop or evidence trail | `/diagnosing-bugs` |
|
|
315
397
|
| Ball of mud | Architecture drifts; modules grow shallow and tangled | `/improve-codebase-architecture`, `/codebase-design`, `/domain-modeling` |
|
|
316
398
|
|
|
317
399
|
**Skill descriptions:**
|
|
318
400
|
|
|
319
401
|
- `/grill-me`, `/grilling` — Interview the user relentlessly until the plan is fully resolved before touching code
|
|
320
402
|
- `/grill-with-docs` — Same, but cross-references CONTEXT.md and ADRs and updates them inline
|
|
321
|
-
- `/tdd` — RED-GREEN-REFACTOR with tracer-bullet vertical slices; integration-first testing
|
|
322
403
|
- `/diagnosing-bugs` — Diagnosis loop for hard bugs and performance regressions (build a feedback loop first)
|
|
323
404
|
- `/improve-codebase-architecture` — Scan for deepening opportunities, present a visual HTML report, then grill the chosen one
|
|
324
405
|
- `/codebase-design` — Shared vocabulary for designing deep modules and choosing where seams go
|
|
@@ -331,7 +412,6 @@ Load the docker-compose skill for multi-service setup
|
|
|
331
412
|
- `/research` — Investigate a question against primary sources and capture findings as Markdown
|
|
332
413
|
- `/prototype` — Throwaway prototypes: terminal app for logic or UI variations for visual
|
|
333
414
|
- `/setup-agent-tracker` — One-time per-repo setup of the issue tracker, triage labels, and domain doc layout
|
|
334
|
-
- `/writing-great-skills` — Reference for writing and editing skills well
|
|
335
415
|
|
|
336
416
|
</details>
|
|
337
417
|
|
|
@@ -431,7 +511,7 @@ agent-notes config provider <name> # check if configured (without exposing
|
|
|
431
511
|
|
|
432
512
|
### Building and testing
|
|
433
513
|
|
|
434
|
-
Python 3.
|
|
514
|
+
Python 3.11+ required. Create an isolated environment and run tests:
|
|
435
515
|
|
|
436
516
|
```bash
|
|
437
517
|
python -m venv .venv && source .venv/bin/activate
|
|
@@ -524,7 +604,7 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), [docs/ADD_CLI.md](docs/ADD_CLI
|
|
|
524
604
|
## Inspired by
|
|
525
605
|
|
|
526
606
|
- [Andrej Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — The wiki memory backend implements his compile-once, query-forever knowledge pattern with structured page types and three core operations (ingest, query, lint)
|
|
527
|
-
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (
|
|
607
|
+
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (grill-me, grilling, grill-with-docs, diagnosing-bugs, improve-codebase-architecture, codebase-design, domain-modeling, prototype, handoff, research, to-spec, to-tickets, triage, wayfinder). Last synced from upstream commit [`391a270`](https://github.com/mattpocock/skills/commit/391a2701dd948f94f56a39f7533f8eea9a859c87) (2026-07-10), reviewed for prompt-injection before import.
|
|
528
608
|
|
|
529
609
|
## License
|
|
530
610
|
|
|
@@ -5,14 +5,16 @@ AI agent configuration manager for Claude Code and OpenCode — orchestrates a t
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
8
|
+
pipx install agent-notes
|
|
9
9
|
agent-notes install # interactive wizard guides you through setup
|
|
10
10
|
agent-notes doctor
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
> No `pipx`? Use `uv tool install agent-notes` instead, or see **Troubleshooting: externally-managed-environment** below.
|
|
14
|
+
|
|
13
15
|
**What's Included**
|
|
14
16
|
- 19 specialized AI subagents (Opus reasons, Sonnet executes, Haiku explores)
|
|
15
|
-
-
|
|
17
|
+
- 25 on-demand skills (Rails, Docker, Git, Kamal, Process)
|
|
16
18
|
- Global rules and guardrails (including a ban on AI self-attribution in commits/PRs)
|
|
17
19
|
- Agent memory with 3 storage options (Local, Obsidian, Wiki)
|
|
18
20
|
- Configuration for Claude Code, OpenCode, and GitHub Copilot
|
|
@@ -31,6 +33,13 @@ pipx install agent-notes
|
|
|
31
33
|
agent-notes install
|
|
32
34
|
```
|
|
33
35
|
|
|
36
|
+
**uv tool (lightweight alternative to pipx):**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
uv tool install agent-notes
|
|
40
|
+
agent-notes install
|
|
41
|
+
```
|
|
42
|
+
|
|
34
43
|
**venv + pip (if you prefer to manage your own environment):**
|
|
35
44
|
|
|
36
45
|
```bash
|
|
@@ -64,6 +73,7 @@ agent-notes uninstall && pipx uninstall agent-notes && pipx install agent-notes
|
|
|
64
73
|
|
|
65
74
|
With venv:
|
|
66
75
|
```bash
|
|
76
|
+
source .venv/bin/activate
|
|
67
77
|
agent-notes uninstall && pip uninstall agent-notes && pip install agent-notes && agent-notes install
|
|
68
78
|
```
|
|
69
79
|
|
|
@@ -87,6 +97,38 @@ To produce a release artifact (wheel for distribution), use `python -m build` +
|
|
|
87
97
|
|
|
88
98
|
The plugin runs a `session.start` hook that surfaces agent-notes context to the CLI session. It does **not** include the full `agent-notes` CLI (wizard, doctor, config, memory, etc.). For those, use install method 1 or 2.
|
|
89
99
|
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
**Note on two meanings of "plugin":** This distribution plugin (the `.claude-plugin/` marketplace artifact) is distinct from **agent-notes plugins** — an internal toggleable subsystem documented below. See [Plugins](#plugins) to tell them apart.
|
|
103
|
+
|
|
104
|
+
### Plugins (toggleable subsystems)
|
|
105
|
+
|
|
106
|
+
Agent-notes includes toggleable subsystems (plugins) that can be enabled or disabled post-install. Currently, only **cost-report** is available as a plugin.
|
|
107
|
+
|
|
108
|
+
**List available plugins:**
|
|
109
|
+
```bash
|
|
110
|
+
agent-notes plugins list
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Example output:
|
|
114
|
+
```
|
|
115
|
+
cost-report [off] Emit a per-session token cost report at the Stop hook
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Enable or disable a plugin:**
|
|
119
|
+
```bash
|
|
120
|
+
agent-notes plugins enable cost-report # Enable cost-report
|
|
121
|
+
agent-notes plugins disable cost-report # Disable cost-report
|
|
122
|
+
agent-notes install # Apply changes
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Show plugin details:**
|
|
126
|
+
```bash
|
|
127
|
+
agent-notes plugins info cost-report
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
After enabling or disabling a plugin, run `agent-notes install` to apply the changes. For details, see `docs/WRITING_A_PLUGIN.md`.
|
|
131
|
+
|
|
90
132
|
### API keys
|
|
91
133
|
|
|
92
134
|
Provider API keys live in `~/.agent-notes/credentials.toml` (mode 0600, never committed). Add or update via:
|
|
@@ -103,6 +145,46 @@ agent-notes config provider openrouter # prints "configured" or "no key"
|
|
|
103
145
|
|
|
104
146
|
</details>
|
|
105
147
|
|
|
148
|
+
### Troubleshooting: externally-managed-environment
|
|
149
|
+
|
|
150
|
+
On Arch, Debian, Ubuntu, and other distributions that mark the system Python as externally-managed (PEP 668), you may see an error like:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
error: externally-managed-environment
|
|
154
|
+
|
|
155
|
+
× This environment is externally managed
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
This error occurs because `pip` refuses to install into the system Python. **Solution:** use an isolated package manager instead:
|
|
159
|
+
|
|
160
|
+
1. **Recommended — pipx:**
|
|
161
|
+
```bash
|
|
162
|
+
pipx install agent-notes
|
|
163
|
+
agent-notes install
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
2. **Alternative — uv tool:**
|
|
167
|
+
```bash
|
|
168
|
+
uv tool install agent-notes
|
|
169
|
+
agent-notes install
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
3. **Alternative — Create a venv first:**
|
|
173
|
+
```bash
|
|
174
|
+
python -m venv .venv && source .venv/bin/activate
|
|
175
|
+
pip install agent-notes
|
|
176
|
+
agent-notes install
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Last resort only** (discouraged — system packages may conflict):
|
|
180
|
+
```bash
|
|
181
|
+
pip install --user agent-notes
|
|
182
|
+
# or
|
|
183
|
+
pip install --break-system-packages agent-notes
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
106
188
|
<details>
|
|
107
189
|
<summary>Uninstall</summary>
|
|
108
190
|
|
|
@@ -262,7 +344,7 @@ agent-notes memory lint # health-check
|
|
|
262
344
|
<details>
|
|
263
345
|
<summary>Skills</summary>
|
|
264
346
|
|
|
265
|
-
|
|
347
|
+
25 on-demand knowledge modules across Rails, Docker, Kamal, Git, and Process. Run `agent-notes list skills` for the current list, or browse `agent_notes/data/skills/`. For additional workflows (brainstorming, test-driven development, writing skills), see the complementary [Superpowers](https://github.com/obra/superpowers) plugin.
|
|
266
348
|
|
|
267
349
|
The session context hook auto-generates a skill index from SKILL.md frontmatter at install time, so agents always know what skills are available without loading full skill content. This keeps context overhead low while maintaining skill discoverability.
|
|
268
350
|
|
|
@@ -279,14 +361,13 @@ Load the docker-compose skill for multi-service setup
|
|
|
279
361
|
|---|---|---|
|
|
280
362
|
| Misalignment | Claude starts building before the problem is resolved | `/grill-me`, `/grilling`, `/grill-with-docs` |
|
|
281
363
|
| Vague scope | Work starts without a spec or ticketed breakdown | `/to-spec`, `/to-tickets`, `/wayfinder`, `/triage` |
|
|
282
|
-
| Broken code | Claude codes without a feedback loop or evidence trail | `/
|
|
364
|
+
| Broken code | Claude codes without a feedback loop or evidence trail | `/diagnosing-bugs` |
|
|
283
365
|
| Ball of mud | Architecture drifts; modules grow shallow and tangled | `/improve-codebase-architecture`, `/codebase-design`, `/domain-modeling` |
|
|
284
366
|
|
|
285
367
|
**Skill descriptions:**
|
|
286
368
|
|
|
287
369
|
- `/grill-me`, `/grilling` — Interview the user relentlessly until the plan is fully resolved before touching code
|
|
288
370
|
- `/grill-with-docs` — Same, but cross-references CONTEXT.md and ADRs and updates them inline
|
|
289
|
-
- `/tdd` — RED-GREEN-REFACTOR with tracer-bullet vertical slices; integration-first testing
|
|
290
371
|
- `/diagnosing-bugs` — Diagnosis loop for hard bugs and performance regressions (build a feedback loop first)
|
|
291
372
|
- `/improve-codebase-architecture` — Scan for deepening opportunities, present a visual HTML report, then grill the chosen one
|
|
292
373
|
- `/codebase-design` — Shared vocabulary for designing deep modules and choosing where seams go
|
|
@@ -299,7 +380,6 @@ Load the docker-compose skill for multi-service setup
|
|
|
299
380
|
- `/research` — Investigate a question against primary sources and capture findings as Markdown
|
|
300
381
|
- `/prototype` — Throwaway prototypes: terminal app for logic or UI variations for visual
|
|
301
382
|
- `/setup-agent-tracker` — One-time per-repo setup of the issue tracker, triage labels, and domain doc layout
|
|
302
|
-
- `/writing-great-skills` — Reference for writing and editing skills well
|
|
303
383
|
|
|
304
384
|
</details>
|
|
305
385
|
|
|
@@ -399,7 +479,7 @@ agent-notes config provider <name> # check if configured (without exposing
|
|
|
399
479
|
|
|
400
480
|
### Building and testing
|
|
401
481
|
|
|
402
|
-
Python 3.
|
|
482
|
+
Python 3.11+ required. Create an isolated environment and run tests:
|
|
403
483
|
|
|
404
484
|
```bash
|
|
405
485
|
python -m venv .venv && source .venv/bin/activate
|
|
@@ -492,7 +572,7 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), [docs/ADD_CLI.md](docs/ADD_CLI
|
|
|
492
572
|
## Inspired by
|
|
493
573
|
|
|
494
574
|
- [Andrej Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — The wiki memory backend implements his compile-once, query-forever knowledge pattern with structured page types and three core operations (ingest, query, lint)
|
|
495
|
-
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (
|
|
575
|
+
- [Matt Pocock's skills repo](https://github.com/mattpocock/skills) — Skill format (SKILL.md per directory), failure-mode table (misalignment, broken code, architectural degradation), and a set of engineering/productivity skills vendored from the upstream repo (grill-me, grilling, grill-with-docs, diagnosing-bugs, improve-codebase-architecture, codebase-design, domain-modeling, prototype, handoff, research, to-spec, to-tickets, triage, wayfinder). Last synced from upstream commit [`391a270`](https://github.com/mattpocock/skills/commit/391a2701dd948f94f56a39f7533f8eea9a859c87) (2026-07-10), reviewed for prompt-injection before import.
|
|
496
576
|
|
|
497
577
|
## License
|
|
498
578
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.33.1
|
|
@@ -283,7 +283,7 @@ def main():
|
|
|
283
283
|
# memory
|
|
284
284
|
p_memory = subparsers.add_parser("memory", help="Manage agent memory")
|
|
285
285
|
p_memory.add_argument("action", nargs="?", default="list",
|
|
286
|
-
choices=["init", "list", "vault", "index", "add", "size", "show", "reset", "export", "import"
|
|
286
|
+
choices=["init", "list", "vault", "index", "add", "size", "show", "reset", "export", "import"],
|
|
287
287
|
help="Memory action")
|
|
288
288
|
p_memory.add_argument("name", nargs="?", help="Agent name / note title (for show/reset/add)")
|
|
289
289
|
p_memory.add_argument("extra", nargs="*", help="Additional args (for add: body [type] [agent] [project])")
|
|
@@ -299,6 +299,27 @@ def main():
|
|
|
299
299
|
p_cost_report.add_argument("--since", help="Only include messages at or after this UTC datetime (ISO 8601)")
|
|
300
300
|
p_cost_report.add_argument("--session", help="Session ID to report on (Claude Code only)")
|
|
301
301
|
|
|
302
|
+
# models
|
|
303
|
+
p_models = subparsers.add_parser("models", help="Manage the model catalog")
|
|
304
|
+
p_models_sub = p_models.add_subparsers(dest="subaction", metavar="")
|
|
305
|
+
p_refresh = p_models_sub.add_parser("refresh", help="Fetch latest models from providers and update cache")
|
|
306
|
+
p_refresh.add_argument("--provider", choices=["anthropic", "openai"],
|
|
307
|
+
help="Limit to one provider")
|
|
308
|
+
p_refresh.add_argument("--dry-run", action="store_true", dest="dry_run",
|
|
309
|
+
help="Print diff but do not write cache")
|
|
310
|
+
p_models_sub.add_parser("freeze", help="Promote cache to seed.json for committing")
|
|
311
|
+
|
|
312
|
+
# plugins
|
|
313
|
+
p_plugins = subparsers.add_parser("plugins", help="Manage agent-notes plugins")
|
|
314
|
+
p_plugins_sub = p_plugins.add_subparsers(dest="subaction", metavar="{list,enable,disable,info}")
|
|
315
|
+
p_plugins_sub.add_parser("list", help="List available plugins and their status")
|
|
316
|
+
p_plugins_enable = p_plugins_sub.add_parser("enable", help="Enable a plugin")
|
|
317
|
+
p_plugins_enable.add_argument("name", help="Plugin name")
|
|
318
|
+
p_plugins_disable = p_plugins_sub.add_parser("disable", help="Disable a plugin")
|
|
319
|
+
p_plugins_disable.add_argument("name", help="Plugin name")
|
|
320
|
+
p_plugins_info = p_plugins_sub.add_parser("info", help="Show details for a plugin")
|
|
321
|
+
p_plugins_info.add_argument("name", help="Plugin name")
|
|
322
|
+
|
|
302
323
|
# config
|
|
303
324
|
p_config = subparsers.add_parser("config", help="Reconfigure role/agent/model/memory/skill assignments after install")
|
|
304
325
|
p_config.add_argument("action", nargs="?", default="wizard",
|
|
@@ -364,6 +385,35 @@ def main():
|
|
|
364
385
|
elif args.command == "memory":
|
|
365
386
|
from .commands.memory import memory
|
|
366
387
|
memory(args.action, args.name, getattr(args, "extra", None), description=getattr(args, "description", ""))
|
|
388
|
+
elif args.command == "models":
|
|
389
|
+
subaction = getattr(args, "subaction", None)
|
|
390
|
+
if subaction == "refresh":
|
|
391
|
+
from .commands.models import refresh
|
|
392
|
+
refresh(
|
|
393
|
+
provider=getattr(args, "provider", None),
|
|
394
|
+
dry_run=getattr(args, "dry_run", False),
|
|
395
|
+
)
|
|
396
|
+
elif subaction == "freeze":
|
|
397
|
+
from .commands.models import freeze
|
|
398
|
+
freeze()
|
|
399
|
+
else:
|
|
400
|
+
parser.parse_args(["models", "--help"])
|
|
401
|
+
elif args.command == "plugins":
|
|
402
|
+
subaction = getattr(args, "subaction", None)
|
|
403
|
+
if subaction == "list":
|
|
404
|
+
from .commands.plugins import list_plugins
|
|
405
|
+
list_plugins()
|
|
406
|
+
elif subaction == "enable":
|
|
407
|
+
from .commands.plugins import enable_plugin
|
|
408
|
+
enable_plugin(args.name)
|
|
409
|
+
elif subaction == "disable":
|
|
410
|
+
from .commands.plugins import disable_plugin
|
|
411
|
+
disable_plugin(args.name)
|
|
412
|
+
elif subaction == "info":
|
|
413
|
+
from .commands.plugins import info_plugin
|
|
414
|
+
info_plugin(args.name)
|
|
415
|
+
else:
|
|
416
|
+
parser.parse_args(["plugins", "--help"])
|
|
367
417
|
elif args.command == "config":
|
|
368
418
|
from .commands.config import config
|
|
369
419
|
config(action=args.action, args=getattr(args, "extra", None) or [], cli_filter=args.cli)
|
|
@@ -371,20 +421,10 @@ def main():
|
|
|
371
421
|
from .commands.hook import hook
|
|
372
422
|
hook(args.subaction)
|
|
373
423
|
elif args.command == "cost-report":
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
if args.session:
|
|
379
|
-
argv += ["--session", args.session]
|
|
380
|
-
import sys
|
|
381
|
-
old_argv = sys.argv
|
|
382
|
-
sys.argv = ["agent-notes cost-report"] + argv
|
|
383
|
-
try:
|
|
384
|
-
from .scripts.cost_report import main as _cost_report_main
|
|
385
|
-
sys.exit(_cost_report_main())
|
|
386
|
-
finally:
|
|
387
|
-
sys.argv = old_argv
|
|
424
|
+
from .cost.cost_report import main as _cost_report_main, _parse_since
|
|
425
|
+
since = _parse_since(args.since) if args.since else None
|
|
426
|
+
session_id = args.session or None
|
|
427
|
+
sys.exit(_cost_report_main(since=since, session_id=session_id))
|
|
388
428
|
|
|
389
429
|
if __name__ == "__main__":
|
|
390
430
|
main()
|
|
@@ -188,7 +188,7 @@ def count_agents(backend) -> int:
|
|
|
188
188
|
return 0
|
|
189
189
|
from ..registries.agent_registry import load_agent_registry
|
|
190
190
|
registry = load_agent_registry()
|
|
191
|
-
return sum(1 for a in registry.
|
|
191
|
+
return sum(1 for a in registry.available() if not a.excluded_from(backend.name))
|
|
192
192
|
|
|
193
193
|
|
|
194
194
|
def count_global() -> int:
|
|
@@ -129,7 +129,7 @@ def build(role_models=None, role_efforts=None, scope='global', project_path=None
|
|
|
129
129
|
|
|
130
130
|
# Read configuration
|
|
131
131
|
try:
|
|
132
|
-
agents_config
|
|
132
|
+
agents_config = load_agents_config()
|
|
133
133
|
except FileNotFoundError as e:
|
|
134
134
|
print(f"Error: {e}")
|
|
135
135
|
return
|
|
@@ -139,7 +139,7 @@ def build(role_models=None, role_efforts=None, scope='global', project_path=None
|
|
|
139
139
|
|
|
140
140
|
# Generate agent files (state=None is backward compatible)
|
|
141
141
|
print("Generating agent files...")
|
|
142
|
-
agent_files = generate_agent_files(agents_config,
|
|
142
|
+
agent_files = generate_agent_files(agents_config, state=state,
|
|
143
143
|
scope=scope, project_path=project_path,
|
|
144
144
|
role_models=role_models, role_efforts=role_efforts,
|
|
145
145
|
profile_label=profile_label)
|
|
@@ -7,7 +7,7 @@ import sys
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import Optional
|
|
9
9
|
|
|
10
|
-
from ..constants import DEFAULT_VAULT_DIR, DEFAULT_VAULT_NAME,
|
|
10
|
+
from ..constants import DEFAULT_VAULT_DIR, DEFAULT_VAULT_NAME, Obsidian
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def _load_state():
|
|
@@ -277,15 +277,17 @@ def show(state=None) -> None:
|
|
|
277
277
|
mem = state.memory
|
|
278
278
|
if mem.backend == "obsidian":
|
|
279
279
|
mem_label = f"Obsidian session ({mem.path})" if mem.path else "Obsidian session"
|
|
280
|
-
elif mem.backend == "wiki":
|
|
281
|
-
mem_label = f"Obsidian wiki ({mem.path})" if mem.path else "Obsidian wiki"
|
|
282
280
|
elif mem.backend == "local":
|
|
283
281
|
mem_label = "Local markdown"
|
|
284
282
|
else:
|
|
285
283
|
mem_label = "Disabled"
|
|
286
284
|
|
|
287
285
|
from ..services.user_config import load_user_config
|
|
288
|
-
|
|
286
|
+
from ..registries.plugin_registry import default_plugin_registry
|
|
287
|
+
_ucfg = load_user_config()
|
|
288
|
+
cost_report_enabled = any(
|
|
289
|
+
p.name == "cost-report" for p in default_plugin_registry().enabled(_ucfg)
|
|
290
|
+
)
|
|
289
291
|
cost_report_label = "enabled" if cost_report_enabled else "disabled"
|
|
290
292
|
|
|
291
293
|
print("Current configuration:")
|
|
@@ -480,27 +482,37 @@ def _wizard_memory(state, before: str) -> bool:
|
|
|
480
482
|
"""Branch 3: interactive memory backend change."""
|
|
481
483
|
from ..services.ui import _safe_input, _path_input
|
|
482
484
|
|
|
483
|
-
|
|
484
|
-
"1": ("local", "default
|
|
485
|
-
"2": ("obsidian", "Obsidian
|
|
486
|
-
"3": ("wiki", "Obsidian - brain"),
|
|
487
|
-
"4": ("none", "None"),
|
|
485
|
+
provider_options = {
|
|
486
|
+
"1": ("local", "default — the CLI's native memory / Claude Code built-in md files"),
|
|
487
|
+
"2": ("obsidian", "external Obsidian vault"),
|
|
488
488
|
}
|
|
489
489
|
|
|
490
|
-
print("\nMemory
|
|
491
|
-
for key, (_, label) in
|
|
490
|
+
print("\nMemory provider options:")
|
|
491
|
+
for key, (_, label) in provider_options.items():
|
|
492
492
|
print(f" {key}) {label}")
|
|
493
493
|
|
|
494
494
|
choice = _safe_input("Choice [1]: ", "1").strip()
|
|
495
|
-
if choice not in
|
|
495
|
+
if choice not in provider_options:
|
|
496
496
|
print("Invalid choice. No changes made.")
|
|
497
497
|
return False
|
|
498
498
|
|
|
499
|
-
backend, label =
|
|
499
|
+
backend, label = provider_options[choice]
|
|
500
500
|
path = ""
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
501
|
+
strategy = "single-brain"
|
|
502
|
+
|
|
503
|
+
if backend == "obsidian":
|
|
504
|
+
strategy_options = {
|
|
505
|
+
"1": ("single-brain", "one shared vault across all projects"),
|
|
506
|
+
"2": ("per-project", "memory organized per project"),
|
|
507
|
+
}
|
|
508
|
+
print("\nObsidian strategy:")
|
|
509
|
+
for key, (_, slabel) in strategy_options.items():
|
|
510
|
+
print(f" {key}) {slabel}")
|
|
511
|
+
s_choice = _safe_input("Choice [1]: ", "1").strip()
|
|
512
|
+
if s_choice in strategy_options:
|
|
513
|
+
strategy, _ = strategy_options[s_choice]
|
|
514
|
+
|
|
515
|
+
subfolder = Obsidian.SUBFOLDER
|
|
504
516
|
default_vault = str(Path.home() / DEFAULT_VAULT_DIR / DEFAULT_VAULT_NAME)
|
|
505
517
|
print(f" Folder name: {subfolder}")
|
|
506
518
|
print(" Press Tab to autocomplete paths")
|
|
@@ -511,9 +523,12 @@ def _wizard_memory(state, before: str) -> bool:
|
|
|
511
523
|
|
|
512
524
|
state.memory.backend = backend
|
|
513
525
|
state.memory.path = path
|
|
526
|
+
state.memory.strategy = strategy
|
|
514
527
|
print(f"Memory set to: {label}")
|
|
515
528
|
if path:
|
|
516
529
|
print(f" Path: {path}")
|
|
530
|
+
if backend == "obsidian":
|
|
531
|
+
print(f" Strategy: {strategy}")
|
|
517
532
|
|
|
518
533
|
_apply_and_regenerate(state, before)
|
|
519
534
|
return True
|
|
@@ -627,14 +642,9 @@ def interactive_config_memory() -> None:
|
|
|
627
642
|
|
|
628
643
|
|
|
629
644
|
def cost_report_toggle(value: str) -> None:
|
|
630
|
-
"""Enable or disable cost reporting
|
|
631
|
-
from
|
|
632
|
-
|
|
633
|
-
cfg["cost_report_enabled"] = (value == "on")
|
|
634
|
-
save_user_config(cfg)
|
|
635
|
-
state_label = "enabled" if value == "on" else "disabled"
|
|
636
|
-
print(f"Cost reporting {state_label}.")
|
|
637
|
-
print("Run 'agent-notes regenerate' to update generated rules.")
|
|
645
|
+
"""Enable or disable cost reporting via the plugin system."""
|
|
646
|
+
from .plugins import enable_plugin, disable_plugin
|
|
647
|
+
(enable_plugin if value == "on" else disable_plugin)("cost-report")
|
|
638
648
|
|
|
639
649
|
|
|
640
650
|
# ── Entry point ──────────────────────────────────────────────────────────────
|