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.
Files changed (408) hide show
  1. {agent_notes-2.33.0 → agent_notes-2.33.1}/PKG-INFO +92 -12
  2. {agent_notes-2.33.0 → agent_notes-2.33.1}/README.md +88 -8
  3. agent_notes-2.33.1/agent_notes/VERSION +1 -0
  4. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/cli.py +55 -15
  5. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/_install_helpers.py +1 -1
  6. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/build.py +2 -2
  7. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/config.py +34 -24
  8. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/doctor.py +36 -4
  9. agent_notes-2.33.1/agent_notes/commands/hook/__init__.py +147 -0
  10. agent_notes-2.33.0/agent_notes/commands/hook.py → agent_notes-2.33.1/agent_notes/commands/hook/_guard.py +152 -213
  11. agent_notes-2.33.1/agent_notes/commands/hook/_memory.py +35 -0
  12. agent_notes-2.33.1/agent_notes/commands/hook/_session.py +30 -0
  13. agent_notes-2.33.1/agent_notes/commands/memory/__init__.py +15 -0
  14. agent_notes-2.33.1/agent_notes/commands/models.py +210 -0
  15. agent_notes-2.33.1/agent_notes/commands/plugins.py +66 -0
  16. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/regenerate.py +0 -1
  17. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/validate.py +13 -4
  18. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/__init__.py +124 -52
  19. agent_notes-2.33.1/agent_notes/commands/wizard/capabilities.py +125 -0
  20. agent_notes-2.33.1/agent_notes/commands/wizard/capability_registry.py +54 -0
  21. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/execute.py +26 -25
  22. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/orchestrator.py +25 -9
  23. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/config.py +2 -7
  24. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/constants.py +0 -11
  25. {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_claude_backend.py +1 -1
  26. {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_opencode_backend.py +1 -1
  27. {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_pricing.py +0 -9
  28. {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/cost_report.py +5 -49
  29. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/agents.yaml +0 -20
  30. agent_notes-2.33.1/agent_notes/data/agents/lead.md +32 -0
  31. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/guardrails.md +2 -2
  32. agent_notes-2.33.1/agent_notes/data/agents/shared/skeptical_verification.md +7 -0
  33. agent_notes-2.33.1/agent_notes/data/catalog/rules.yaml +86 -0
  34. agent_notes-2.33.1/agent_notes/data/catalog/seed.json +84 -0
  35. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/claude.yaml +1 -0
  36. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/codex.yaml +1 -1
  37. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/copilot.yaml +2 -0
  38. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/cli/opencode.yaml +2 -2
  39. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-claude.md +2 -29
  40. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/plugin/claude.yaml +0 -3
  41. agent_notes-2.33.1/agent_notes/data/plugins/cost-report/plugin.yaml +8 -0
  42. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/pricing.yaml +22 -5
  43. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/rules/safety.md +1 -0
  44. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/ingest/SKILL.md +16 -84
  45. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/migrate-memory/SKILL.md +5 -72
  46. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/obsidian-memory/SKILL.md +3 -3
  47. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/base.cpython-314.pyc +0 -0
  48. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-314.pyc +0 -0
  49. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-314.pyc +0 -0
  50. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-314.pyc +0 -0
  51. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/base.py +9 -1
  52. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/agent.py +2 -1
  53. agent_notes-2.33.1/agent_notes/domain/capability.py +35 -0
  54. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/cli_backend.py +1 -1
  55. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/model.py +1 -1
  56. agent_notes-2.33.1/agent_notes/domain/plugin.py +34 -0
  57. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/skill.py +2 -1
  58. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/state.py +3 -2
  59. agent_notes-2.33.1/agent_notes/memory/__init__.py +1 -0
  60. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/__init__.py +2 -25
  61. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/_common.py +10 -15
  62. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/migrate.py +2 -2
  63. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/notes.py +9 -78
  64. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/reset.py +0 -36
  65. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/transfer.py +0 -8
  66. {agent_notes-2.33.0/agent_notes/commands/memory → agent_notes-2.33.1/agent_notes/memory/commands}/vault.py +5 -25
  67. agent_notes-2.33.1/agent_notes/memory/install.py +127 -0
  68. agent_notes-2.33.1/agent_notes/memory/instructions.py +130 -0
  69. {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/local_backend.py +1 -1
  70. {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/memory_backend.py +33 -14
  71. {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/obsidian_backend.py +99 -21
  72. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/agent_registry.py +9 -2
  73. agent_notes-2.33.1/agent_notes/registries/catalog_loader.py +223 -0
  74. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/cli_registry.py +7 -1
  75. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/model_registry.py +38 -12
  76. agent_notes-2.33.1/agent_notes/registries/plugin_registry.py +107 -0
  77. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/skill_registry.py +21 -10
  78. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_checks.py +187 -24
  79. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/install_executor.py +3 -11
  80. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/installer.py +71 -63
  81. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/model_resolver.py +35 -38
  82. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/rendering.py +36 -126
  83. agent_notes-2.33.1/agent_notes/services/stability.py +53 -0
  84. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/state_store.py +4 -2
  85. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/user_config.py +11 -2
  86. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/PKG-INFO +92 -12
  87. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/SOURCES.txt +81 -59
  88. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/requires.txt +1 -3
  89. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/top_level.txt +0 -1
  90. {agent_notes-2.33.0 → agent_notes-2.33.1}/pyproject.toml +5 -5
  91. agent_notes-2.33.1/tests/conftest.py +68 -0
  92. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_config_command.py +1 -1
  93. agent_notes-2.33.1/tests/functional/commands/test_plugins_cli.py +294 -0
  94. agent_notes-2.33.1/tests/functional/commands/test_stability_cli.py +29 -0
  95. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_uninstall_full_hooks.py +9 -3
  96. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_wizard_happy_path.py +103 -9
  97. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/test_skills.py +1 -1
  98. agent_notes-2.33.1/tests/unit/commands/test_capability_registry.py +53 -0
  99. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_cost_report_subcommand.py +20 -18
  100. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_guard_credentials.py +232 -2
  101. agent_notes-2.33.1/tests/unit/commands/test_hook_constants.py +80 -0
  102. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_add_description.py +5 -5
  103. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_imports.py +13 -27
  104. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_memory_migrate.py +1 -1
  105. agent_notes-2.33.1/tests/unit/commands/test_models_command.py +246 -0
  106. agent_notes-2.33.1/tests/unit/commands/test_plugins_command.py +264 -0
  107. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_precompact_memory_bridge.py +3 -13
  108. agent_notes-2.33.1/tests/unit/commands/test_toggle_capabilities.py +32 -0
  109. agent_notes-2.33.1/tests/unit/commands/test_validate_line_limit.py +13 -0
  110. agent_notes-2.33.1/tests/unit/commands/test_wizard_accept_all_models.py +59 -0
  111. agent_notes-2.33.1/tests/unit/commands/test_wizard_backend_config.py +52 -0
  112. agent_notes-2.33.1/tests/unit/commands/test_wizard_backend_step.py +44 -0
  113. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_confirm_build_order.py +2 -2
  114. agent_notes-2.33.1/tests/unit/commands/test_wizard_memory_path_validation.py +21 -0
  115. agent_notes-2.33.1/tests/unit/commands/test_wizard_provider_step.py +50 -0
  116. agent_notes-2.33.1/tests/unit/commands/test_wizard_role_model_default.py +198 -0
  117. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_steps.py +53 -38
  118. agent_notes-2.33.1/tests/unit/commands/test_wizard_toggle_step.py +19 -0
  119. agent_notes-2.33.1/tests/unit/commands/test_wizard_total_steps.py +51 -0
  120. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cache_write_pricing.py +9 -9
  121. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cost_report.py +2 -8
  122. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_cost_report_scoping.py +28 -30
  123. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_formatting_tty.py +4 -4
  124. agent_notes-2.33.1/tests/unit/cost/test_hook_constant.py +30 -0
  125. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_opencode_backend_connection.py +2 -2
  126. agent_notes-2.33.1/tests/unit/cost/test_opencode_backend_pricing.py +310 -0
  127. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/cost}/test_time_aggregation.py +7 -7
  128. agent_notes-2.33.1/tests/unit/domain/test_capability.py +19 -0
  129. agent_notes-2.33.1/tests/unit/memory/test_stability_memory.py +25 -0
  130. agent_notes-2.33.1/tests/unit/registries/test_catalog_equivalence.py +315 -0
  131. agent_notes-2.33.1/tests/unit/registries/test_plugin_equivalence.py +105 -0
  132. agent_notes-2.33.1/tests/unit/registries/test_plugin_registry.py +56 -0
  133. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/registries/test_registries.py +81 -57
  134. agent_notes-2.33.1/tests/unit/registries/test_stability_filtering.py +60 -0
  135. agent_notes-2.33.1/tests/unit/registries/test_stability_parsing.py +98 -0
  136. agent_notes-2.33.1/tests/unit/registries/test_stability_skills_agents.py +30 -0
  137. agent_notes-2.33.1/tests/unit/scripts/__init__.py +0 -0
  138. agent_notes-2.33.1/tests/unit/services/__init__.py +0 -0
  139. agent_notes-2.33.1/tests/unit/services/test_cost_report_plugin_migration.py +39 -0
  140. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_generate_agent_files_pins.py +26 -26
  141. agent_notes-2.33.1/tests/unit/services/test_generate_agent_files_stability.py +48 -0
  142. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_credential_guard.py +1 -1
  143. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_hooks.py +21 -16
  144. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_precompact_hook.py +0 -14
  145. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_local_backend.py +2 -2
  146. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_memory_backend.py +2 -2
  147. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_memory_backend_io.py +15 -15
  148. agent_notes-2.33.1/tests/unit/services/test_memory_config_migration.py +47 -0
  149. agent_notes-2.33.1/tests/unit/services/test_memory_instructions.py +100 -0
  150. agent_notes-2.33.1/tests/unit/services/test_memory_router.py +78 -0
  151. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_model_resolver_characterization.py +168 -58
  152. agent_notes-2.33.1/tests/unit/services/test_obsidian_strategy.py +216 -0
  153. agent_notes-2.33.1/tests/unit/services/test_plugin_install.py +165 -0
  154. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_rendering_includes.py +4 -5
  155. agent_notes-2.33.1/tests/unit/services/test_stability.py +34 -0
  156. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_user_config_cost_report.py +53 -32
  157. agent_notes-2.33.1/tests/unit/services/test_user_config_xdg.py +58 -0
  158. agent_notes-2.33.1/tests/unit/services/test_wiki_migration_error.py +114 -0
  159. agent_notes-2.33.1/tests/unit/templates/__init__.py +0 -0
  160. agent_notes-2.33.1/tests/unit/test_cache_isolation.py +107 -0
  161. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/test_memory_dir_for_backend.py +2 -30
  162. agent_notes-2.33.0/agent_notes/VERSION +0 -1
  163. agent_notes-2.33.0/agent_notes/commands/memory/wiki.py +0 -153
  164. agent_notes-2.33.0/agent_notes/data/agents/lead.md +0 -47
  165. agent_notes-2.33.0/agent_notes/data/agents/shared/wiki_compile.md +0 -18
  166. agent_notes-2.33.0/agent_notes/data/agents/wiki-compiler.md +0 -121
  167. agent_notes-2.33.0/agent_notes/data/models/claude-fable-5.yaml +0 -15
  168. agent_notes-2.33.0/agent_notes/data/models/claude-haiku-4-5.yaml +0 -15
  169. agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-1.yaml +0 -16
  170. agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-5.yaml +0 -16
  171. agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-6.yaml +0 -16
  172. agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-7.yaml +0 -16
  173. agent_notes-2.33.0/agent_notes/data/models/claude-opus-4-8.yaml +0 -15
  174. agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-4-5.yaml +0 -16
  175. agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-4-6.yaml +0 -15
  176. agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-4.yaml +0 -16
  177. agent_notes-2.33.0/agent_notes/data/models/claude-sonnet-5.yaml +0 -15
  178. agent_notes-2.33.0/agent_notes/data/models/gpt-5-4-mini.yaml +0 -14
  179. agent_notes-2.33.0/agent_notes/data/models/gpt-5-4.yaml +0 -14
  180. agent_notes-2.33.0/agent_notes/data/models/gpt-5-5.yaml +0 -14
  181. agent_notes-2.33.0/agent_notes/data/skills/brainstorming/SKILL.md +0 -57
  182. agent_notes-2.33.0/agent_notes/data/skills/tdd/SKILL.md +0 -37
  183. agent_notes-2.33.0/agent_notes/data/skills/tdd/mocking.md +0 -59
  184. agent_notes-2.33.0/agent_notes/data/skills/tdd/tests.md +0 -77
  185. agent_notes-2.33.0/agent_notes/data/skills/writing-great-skills/GLOSSARY.md +0 -201
  186. agent_notes-2.33.0/agent_notes/data/skills/writing-great-skills/SKILL.md +0 -84
  187. agent_notes-2.33.0/agent_notes/doctor_checks.py +0 -192
  188. agent_notes-2.33.0/agent_notes/services/wiki/__init__.py +0 -25
  189. agent_notes-2.33.0/agent_notes/services/wiki/_wiki_utils.py +0 -196
  190. agent_notes-2.33.0/agent_notes/services/wiki/wiki_index.py +0 -171
  191. agent_notes-2.33.0/agent_notes/services/wiki/wiki_ingest.py +0 -382
  192. agent_notes-2.33.0/agent_notes/services/wiki/wiki_lint.py +0 -176
  193. agent_notes-2.33.0/agent_notes/services/wiki/wiki_query.py +0 -103
  194. agent_notes-2.33.0/agent_notes/services/wiki/wiki_storage.py +0 -125
  195. agent_notes-2.33.0/agent_notes/services/wiki_backend.py +0 -3
  196. agent_notes-2.33.0/tests/conftest.py +0 -35
  197. agent_notes-2.33.0/tests/unit/commands/test_wizard_role_model_default.py +0 -108
  198. agent_notes-2.33.0/tests/unit/scripts/test_opencode_backend_pricing.py +0 -100
  199. agent_notes-2.33.0/tests/unit/services/test_memory_router.py +0 -100
  200. agent_notes-2.33.0/tests/unit/services/test_wiki_atomic_write.py +0 -73
  201. agent_notes-2.33.0/tests/unit/services/test_wiki_backend.py +0 -1361
  202. agent_notes-2.33.0/tests/unit/services/test_wiki_imports.py +0 -222
  203. {agent_notes-2.33.0 → agent_notes-2.33.1}/LICENSE +0 -0
  204. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/__init__.py +0 -0
  205. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/__main__.py +0 -0
  206. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/__init__.py +0 -0
  207. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/info.py +0 -0
  208. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/install.py +0 -0
  209. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/list.py +0 -0
  210. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/set_role.py +0 -0
  211. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/uninstall.py +0 -0
  212. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/_common.py +0 -0
  213. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/commands/wizard/cost_report.py +0 -0
  214. {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/__init__.py +0 -0
  215. {agent_notes-2.33.0/agent_notes/scripts → agent_notes-2.33.1/agent_notes/cost}/_formatting.py +0 -0
  216. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/analyst.md +0 -0
  217. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/api-reviewer.md +0 -0
  218. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/architect.md +0 -0
  219. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/coder.md +0 -0
  220. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/database-specialist.md +0 -0
  221. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/debugger.md +0 -0
  222. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/devil.md +0 -0
  223. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/devops.md +0 -0
  224. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/explorer.md +0 -0
  225. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/integrations.md +0 -0
  226. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/performance-profiler.md +0 -0
  227. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/refactorer.md +0 -0
  228. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/reviewer.md +0 -0
  229. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/security-auditor.md +0 -0
  230. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/cost_reporting.md +0 -0
  231. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/execution.md +0 -0
  232. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/hard_limits.md +0 -0
  233. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/phase0.md +0 -0
  234. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/pipelines.md +0 -0
  235. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/review.md +0 -0
  236. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/shared/verification.md +0 -0
  237. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/system-auditor.md +0 -0
  238. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/tech-writer.md +0 -0
  239. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/test-runner.md +0 -0
  240. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/agents/test-writer.md +0 -0
  241. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/commands/brainstorm.md +0 -0
  242. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/commands/debug.md +0 -0
  243. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/commands/review.md +0 -0
  244. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-codex.md +0 -0
  245. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-copilot.md +0 -0
  246. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/global-opencode.md +0 -0
  247. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/hooks/session-context.md.tpl +0 -0
  248. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/plugin/opencode-index.js.template +0 -0
  249. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/plugin/opencode.yaml +0 -0
  250. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/providers/anthropic.yaml +0 -0
  251. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/providers/openai.yaml +0 -0
  252. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/orchestrator.yaml +0 -0
  253. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/reasoner.yaml +0 -0
  254. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/scout.yaml +0 -0
  255. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/roles/worker.yaml +0 -0
  256. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/rules/code-quality.md +0 -0
  257. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/rules/no-ai-attribution.md +0 -0
  258. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/chrome-test/SKILL.md +0 -0
  259. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/code-review/SKILL.md +0 -0
  260. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/DEEPENING.md +0 -0
  261. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/DESIGN-IT-TWICE.md +0 -0
  262. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/codebase-design/SKILL.md +0 -0
  263. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/diagnosing-bugs/SKILL.md +0 -0
  264. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -0
  265. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/SKILL.md +0 -0
  266. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/compose.md +0 -0
  267. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/docker/dockerfile.md +0 -0
  268. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/ADR-FORMAT.md +0 -0
  269. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/CONTEXT-FORMAT.md +0 -0
  270. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/domain-modeling/SKILL.md +0 -0
  271. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/git/SKILL.md +0 -0
  272. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/grill-me/SKILL.md +0 -0
  273. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/grill-with-docs/SKILL.md +0 -0
  274. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/grilling/SKILL.md +0 -0
  275. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/handoff/SKILL.md +0 -0
  276. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/improve-codebase-architecture/HTML-REPORT.md +0 -0
  277. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/improve-codebase-architecture/SKILL.md +0 -0
  278. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/LOGIC.md +0 -0
  279. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/SKILL.md +0 -0
  280. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/prototype/UI.md +0 -0
  281. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/SKILL.md +0 -0
  282. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/controllers.md +0 -0
  283. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/frontend.md +0 -0
  284. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/infra.md +0 -0
  285. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/models.md +0 -0
  286. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/testing.md +0 -0
  287. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rails/views.md +0 -0
  288. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/refactoring-protocol/SKILL.md +0 -0
  289. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/research/SKILL.md +0 -0
  290. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/rsi/SKILL.md +0 -0
  291. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/SKILL.md +0 -0
  292. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/domain.md +0 -0
  293. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-github.md +0 -0
  294. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-gitlab.md +0 -0
  295. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/issue-tracker-local.md +0 -0
  296. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/setup-agent-tracker/triage-labels.md +0 -0
  297. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/to-spec/SKILL.md +0 -0
  298. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/to-tickets/SKILL.md +0 -0
  299. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/AGENT-BRIEF.md +0 -0
  300. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/OUT-OF-SCOPE.md +0 -0
  301. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/triage/SKILL.md +0 -0
  302. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/skills/wayfinder/SKILL.md +0 -0
  303. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/__init__.py +0 -0
  304. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/__pycache__/__init__.cpython-312.pyc +0 -0
  305. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/__pycache__/__init__.cpython-314.pyc +0 -0
  306. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__init__.py +0 -0
  307. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-312.pyc +0 -0
  308. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/__init__.cpython-314.pyc +0 -0
  309. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/claude.cpython-312.pyc +0 -0
  310. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/codex.cpython-312.pyc +0 -0
  311. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/__pycache__/opencode.cpython-312.pyc +0 -0
  312. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/claude.py +0 -0
  313. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/codex.py +0 -0
  314. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/data/templates/frontmatter/opencode.py +0 -0
  315. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/__init__.py +0 -0
  316. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/diagnostics.py +0 -0
  317. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/diff.py +0 -0
  318. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/provider.py +0 -0
  319. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/role.py +0 -0
  320. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/domain/rule.py +0 -0
  321. {agent_notes-2.33.0/agent_notes/services → agent_notes-2.33.1/agent_notes/memory}/memory_router.py +0 -0
  322. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/__init__.py +0 -0
  323. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/_base.py +0 -0
  324. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/provider_registry.py +0 -0
  325. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/role_registry.py +0 -0
  326. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/registries/rule_registry.py +0 -0
  327. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/__init__.py +0 -0
  328. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/_memory_utils.py +0 -0
  329. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/counts.py +0 -0
  330. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/credentials.py +0 -0
  331. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/__init__.py +0 -0
  332. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_display.py +0 -0
  333. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diagnostics/_fix.py +0 -0
  334. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/diff.py +0 -0
  335. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/fs.py +0 -0
  336. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/install_plan.py +0 -0
  337. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/install_state_builder.py +0 -0
  338. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/migrations/__init__.py +0 -0
  339. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/session_context.py +0 -0
  340. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/settings_writer.py +0 -0
  341. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/ui.py +0 -0
  342. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes/services/validation.py +0 -0
  343. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/dependency_links.txt +0 -0
  344. {agent_notes-2.33.0 → agent_notes-2.33.1}/agent_notes.egg-info/entry_points.txt +0 -0
  345. {agent_notes-2.33.0 → agent_notes-2.33.1}/setup.cfg +0 -0
  346. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/__init__.py +0 -0
  347. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/__init__.py +0 -0
  348. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_doctor_command.py +0 -0
  349. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_info_command.py +0 -0
  350. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_install_command.py +0 -0
  351. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_install_roundtrip.py +0 -0
  352. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_list_command.py +0 -0
  353. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_regenerate_command.py +0 -0
  354. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_uninstall_command.py +0 -0
  355. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_validate_command.py +0 -0
  356. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/commands/test_validate_path_filter.py +0 -0
  357. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/memory/__init__.py +0 -0
  358. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/memory/test_memory_add_local_backend.py +0 -0
  359. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/memory/test_memory_command.py +0 -0
  360. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/scripts/__init__.py +0 -0
  361. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/functional/scripts/test_release_script.py +0 -0
  362. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/__init__.py +0 -0
  363. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/build_output/__init__.py +0 -0
  364. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/build_output/test_build_output.py +0 -0
  365. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/install/__init__.py +0 -0
  366. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/install/test_install_methods.py +0 -0
  367. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/plugin_builders/__init__.py +0 -0
  368. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/integration/plugin_builders/test_plugin_builders.py +0 -0
  369. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/__init__.py +0 -0
  370. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/claude/__init__.py +0 -0
  371. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/claude/test_agents.py +0 -0
  372. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/codex/__init__.py +0 -0
  373. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/plugins/codex/test_agents.py +0 -0
  374. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/__init__.py +0 -0
  375. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/__init__.py +0 -0
  376. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_count_agents.py +0 -0
  377. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_info.py +0 -0
  378. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_install_profile_rerender.py +0 -0
  379. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_effort_selection.py +0 -0
  380. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_imports.py +0 -0
  381. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_install_summary_display.py +0 -0
  382. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_orchestrator_skip.py +0 -0
  383. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_preflight.py +0 -0
  384. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/test_wizard_role_ordering.py +0 -0
  385. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/commands/wizard/test_cost_report_step.py +0 -0
  386. {agent_notes-2.33.0/tests/unit/registries → agent_notes-2.33.1/tests/unit/cost}/__init__.py +0 -0
  387. {agent_notes-2.33.0/tests/unit/scripts → agent_notes-2.33.1/tests/unit/domain}/__init__.py +0 -0
  388. {agent_notes-2.33.0/tests/unit/services → agent_notes-2.33.1/tests/unit/memory}/__init__.py +0 -0
  389. {agent_notes-2.33.0/tests/unit/templates → agent_notes-2.33.1/tests/unit/registries}/__init__.py +0 -0
  390. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/registries/test_cli_registry.py +0 -0
  391. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/registries/test_provider_registry.py +0 -0
  392. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_build_functions.py +0 -0
  393. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_credential_filter.py +0 -0
  394. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_credentials.py +0 -0
  395. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_fs.py +0 -0
  396. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_codex.py +0 -0
  397. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_hook_quoting.py +0 -0
  398. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_installer_plan.py +0 -0
  399. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_resolve_effort.py +0 -0
  400. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_session_context.py +0 -0
  401. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_settings_writer.py +0 -0
  402. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_skill_filtering.py +0 -0
  403. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_state_store.py +0 -0
  404. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/services/test_validation.py +0 -0
  405. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/templates/test_claude_frontmatter.py +0 -0
  406. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/templates/test_codex_frontmatter.py +0 -0
  407. {agent_notes-2.33.0 → agent_notes-2.33.1}/tests/unit/templates/test_opencode_frontmatter.py +0 -0
  408. {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.0
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.10
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
- pip install agent-notes
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
- - 50+ on-demand skills (Rails, Docker, Git, Kamal, Process)
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
- 50+ 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/`.
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 | `/tdd`, `/diagnosing-bugs` |
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.10+ required. Create an isolated environment and run tests:
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 (tdd, grill-me, grilling, grill-with-docs, diagnosing-bugs, improve-codebase-architecture, codebase-design, domain-modeling, prototype, handoff, research, to-spec, to-tickets, triage, wayfinder, writing-great-skills). Last synced from upstream commit [`391a270`](https://github.com/mattpocock/skills/commit/391a2701dd948f94f56a39f7533f8eea9a859c87) (2026-07-10), reviewed for prompt-injection before import.
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
- pip install agent-notes
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
- - 50+ on-demand skills (Rails, Docker, Git, Kamal, Process)
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
- 50+ 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/`.
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 | `/tdd`, `/diagnosing-bugs` |
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.10+ required. Create an isolated environment and run tests:
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 (tdd, grill-me, grilling, grill-with-docs, diagnosing-bugs, improve-codebase-architecture, codebase-design, domain-modeling, prototype, handoff, research, to-spec, to-tickets, triage, wayfinder, writing-great-skills). Last synced from upstream commit [`391a270`](https://github.com/mattpocock/skills/commit/391a2701dd948f94f56a39f7533f8eea9a859c87) (2026-07-10), reviewed for prompt-injection before import.
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", "ingest", "query", "lint"],
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
- # Rebuild sys.argv slice so cost_report.main() can parse it normally
375
- argv = []
376
- if args.since:
377
- argv += ["--since", args.since]
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.all() if not a.excluded_from(backend.name))
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, tiers = load_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, tiers, state=state,
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, Wiki, Obsidian
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
- cost_report_enabled = load_user_config().get("cost_report_enabled", False)
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
- storage_options = {
484
- "1": ("local", "default - Claude Code built-in md files"),
485
- "2": ("obsidian", "Obsidian - session"),
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 storage options:")
491
- for key, (_, label) in storage_options.items():
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 storage_options:
495
+ if choice not in provider_options:
496
496
  print("Invalid choice. No changes made.")
497
497
  return False
498
498
 
499
- backend, label = storage_options[choice]
499
+ backend, label = provider_options[choice]
500
500
  path = ""
501
-
502
- if backend in ("obsidian", "wiki"):
503
- subfolder = Obsidian.SUBFOLDER if backend == "obsidian" else Wiki.SUBFOLDER
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 in user config."""
631
- from ..services.user_config import load_user_config, save_user_config
632
- cfg = load_user_config()
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 ──────────────────────────────────────────────────────────────