attune-ai 2.1.1__tar.gz → 2.1.2__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 (737) hide show
  1. {attune_ai-2.1.1 → attune_ai-2.1.2}/CHANGELOG.md +13 -0
  2. {attune_ai-2.1.1 → attune_ai-2.1.2}/PKG-INFO +179 -16
  3. {attune_ai-2.1.1 → attune_ai-2.1.2}/README.md +178 -15
  4. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_ai.egg-info/PKG-INFO +179 -16
  5. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_ai.egg-info/SOURCES.txt +1 -0
  6. {attune_ai-2.1.1 → attune_ai-2.1.2}/pyproject.toml +1 -1
  7. attune_ai-2.1.2/src/attune/socratic_router.py +761 -0
  8. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/vscode_bridge.py +7 -4
  9. {attune_ai-2.1.1 → attune_ai-2.1.2}/.bandit +0 -0
  10. {attune_ai-2.1.1 → attune_ai-2.1.2}/CODE_OF_CONDUCT.md +0 -0
  11. {attune_ai-2.1.1 → attune_ai-2.1.2}/CONTRIBUTING.md +0 -0
  12. {attune_ai-2.1.1 → attune_ai-2.1.2}/LICENSE +0 -0
  13. {attune_ai-2.1.1 → attune_ai-2.1.2}/LICENSE_CHANGE_ANNOUNCEMENT.md +0 -0
  14. {attune_ai-2.1.1 → attune_ai-2.1.2}/MANIFEST.in +0 -0
  15. {attune_ai-2.1.1 → attune_ai-2.1.2}/SECURITY.md +0 -0
  16. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
  17. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
  18. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
  19. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
  20. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
  21. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
  22. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
  23. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
  24. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
  25. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
  26. {attune_ai-2.1.1 → attune_ai-2.1.2}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
  27. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_ai.egg-info/dependency_links.txt +0 -0
  28. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_ai.egg-info/entry_points.txt +0 -0
  29. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_ai.egg-info/requires.txt +0 -0
  30. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_ai.egg-info/top_level.txt +0 -0
  31. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/__init__.py +0 -0
  32. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/__init__.py +0 -0
  33. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/clinical_protocol_monitor.py +0 -0
  34. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/monitoring/__init__.py +0 -0
  35. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/monitoring/protocol_checker.py +0 -0
  36. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/monitoring/protocol_loader.py +0 -0
  37. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/monitoring/sensor_parsers.py +0 -0
  38. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_healthcare/monitors/monitoring/trajectory_analyzer.py +0 -0
  39. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/README.md +0 -0
  40. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/__init__.py +0 -0
  41. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/__init__.py +0 -0
  42. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/__init__.py +0 -0
  43. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/autogen_adapter.py +0 -0
  44. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/crewai_adapter.py +0 -0
  45. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/haystack_adapter.py +0 -0
  46. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/langchain_adapter.py +0 -0
  47. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/langgraph_adapter.py +0 -0
  48. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/native.py +0 -0
  49. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/adapters/wizard_adapter.py +0 -0
  50. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/base.py +0 -0
  51. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/crews/__init__.py +0 -0
  52. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/crews/code_review.py +0 -0
  53. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/crews/health_check.py +0 -0
  54. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/crews/refactoring.py +0 -0
  55. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/crews/security_audit.py +0 -0
  56. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/decorators.py +0 -0
  57. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/factory.py +0 -0
  58. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/framework.py +0 -0
  59. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/memory_integration.py +0 -0
  60. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agent_factory/resilient.py +0 -0
  61. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agents_md/__init__.py +0 -0
  62. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agents_md/loader.py +0 -0
  63. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agents_md/parser.py +0 -0
  64. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/agents_md/registry.py +0 -0
  65. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/claude_memory.py +0 -0
  66. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/cli/__init__.py +0 -0
  67. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/cli/sync_claude.py +0 -0
  68. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/code_health.py +0 -0
  69. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/commands/__init__.py +0 -0
  70. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/commands/context.py +0 -0
  71. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/commands/loader.py +0 -0
  72. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/commands/models.py +0 -0
  73. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/commands/parser.py +0 -0
  74. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/commands/registry.py +0 -0
  75. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/config/__init__.py +0 -0
  76. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/config/unified.py +0 -0
  77. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/context/__init__.py +0 -0
  78. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/context/compaction.py +0 -0
  79. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/context/manager.py +0 -0
  80. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/contextual_patterns.py +0 -0
  81. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/core.py +0 -0
  82. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/git_pattern_extractor.py +0 -0
  83. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/__init__.py +0 -0
  84. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/config.py +0 -0
  85. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/executor.py +0 -0
  86. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/registry.py +0 -0
  87. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/__init__.py +0 -0
  88. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/evaluate_session.py +0 -0
  89. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/first_time_init.py +0 -0
  90. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/pre_compact.py +0 -0
  91. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/session_end.py +0 -0
  92. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/session_start.py +0 -0
  93. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/hooks/scripts/suggest_compact.py +0 -0
  94. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/learning/__init__.py +0 -0
  95. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/learning/evaluator.py +0 -0
  96. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/learning/extractor.py +0 -0
  97. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/learning/storage.py +0 -0
  98. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/levels.py +0 -0
  99. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/pattern_confidence.py +0 -0
  100. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/pattern_resolver.py +0 -0
  101. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/pattern_summary.py +0 -0
  102. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/providers.py +0 -0
  103. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/routing/__init__.py +0 -0
  104. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/routing/model_router.py +0 -0
  105. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/IMPLEMENTATION_SUMMARY.md +0 -0
  106. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/PHASE2_COMPLETE.md +0 -0
  107. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +0 -0
  108. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/QUICK_REFERENCE.md +0 -0
  109. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/README.md +0 -0
  110. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/__init__.py +0 -0
  111. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/audit_logger.py +0 -0
  112. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/audit_logger_example.py +0 -0
  113. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/pii_scrubber.py +0 -0
  114. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/secrets_detector.py +0 -0
  115. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/secrets_detector_example.py +0 -0
  116. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/secure_memdocs.py +0 -0
  117. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/security/secure_memdocs_example.py +0 -0
  118. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/session_status.py +0 -0
  119. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/state.py +0 -0
  120. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/utils/__init__.py +0 -0
  121. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_llm/utils/tokens.py +0 -0
  122. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_software/SOFTWARE_PLUGIN_README.md +0 -0
  123. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_software/__init__.py +0 -0
  124. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_software/cli/__init__.py +0 -0
  125. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_software/cli/inspect.py +0 -0
  126. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_software/cli.py +0 -0
  127. {attune_ai-2.1.1 → attune_ai-2.1.2}/attune_software/plugin.py +0 -0
  128. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/README.md +0 -0
  129. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/config.md +0 -0
  130. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/core.md +0 -0
  131. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/empathy-os.md +0 -0
  132. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/index.md +0 -0
  133. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/llm-toolkit.md +0 -0
  134. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/memory.md +0 -0
  135. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/meta-orchestration.md +0 -0
  136. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/multi-agent.md +0 -0
  137. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/pattern-library.md +0 -0
  138. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/persistence.md +0 -0
  139. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/security-scanner.md +0 -0
  140. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/software-wizards.md +0 -0
  141. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/wizards.md +0 -0
  142. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/api-reference/workflows.md +0 -0
  143. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/examples/adaptive-learning-system.md +0 -0
  144. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/examples/generated-plan-release-prep.md +0 -0
  145. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/examples/multi-agent-team-coordination.md +0 -0
  146. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/examples/sbar-clinical-handoff.md +0 -0
  147. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/examples/simple-chatbot.md +0 -0
  148. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/examples/webhook-event-integration.md +0 -0
  149. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/getting-started/choose-your-path.md +0 -0
  150. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/getting-started/first-steps.md +0 -0
  151. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/getting-started/index.md +0 -0
  152. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/getting-started/installation.md +0 -0
  153. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/getting-started/mcp-integration.md +0 -0
  154. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/getting-started/redis-setup.md +0 -0
  155. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
  156. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
  157. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
  158. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/PUBLISHING.md +0 -0
  159. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/RELEASE_PREPARATION.md +0 -0
  160. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/WORKFLOW_PATTERNS.md +0 -0
  161. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/claude-memory-integration.md +0 -0
  162. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/five-levels-of-empathy.md +0 -0
  163. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/foreword.md +0 -0
  164. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/healthcare-wizards.md +0 -0
  165. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/how-to-read-this-book.md +0 -0
  166. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/multi-model-workflows.md +0 -0
  167. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/pattern-catalog.md +0 -0
  168. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/preface.md +0 -0
  169. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/signoz-integration.md +0 -0
  170. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/teaching-ai-your-standards.md +0 -0
  171. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/trust-circuit-breaker.md +0 -0
  172. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/guides/xml-enhanced-prompts.md +0 -0
  173. {attune_ai-2.1.1 → attune_ai-2.1.2}/docs/index.md +0 -0
  174. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/README.md +0 -0
  175. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
  176. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
  177. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
  178. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/adaptive_routing_demo.py +0 -0
  179. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/adaptive_routing_workflow_demo.py +0 -0
  180. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/agent_coordination_demo.py +0 -0
  181. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/agent_tracking_demo.py +0 -0
  182. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/anthropic_patterns_demo.py +0 -0
  183. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/anthropic_patterns_simple_demo.py +0 -0
  184. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/approval_gates_demo.py +0 -0
  185. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/claude_memory/README-SECURITY.md +0 -0
  186. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
  187. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/claude_memory/example-with-imports.md +0 -0
  188. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/claude_memory/project-CLAUDE.md +0 -0
  189. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/claude_memory/user-CLAUDE.md +0 -0
  190. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/complete-workflow/README.md +0 -0
  191. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/complete-workflow/workflow_example.py +0 -0
  192. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/config/empathy.config.example.yml +0 -0
  193. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/coordinated_workflow_demo.py +0 -0
  194. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/dashboard_demo.py +0 -0
  195. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/demos/demo_end_to_end_workflow.py +0 -0
  196. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/demos/demo_memory_integration.py +0 -0
  197. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/demos/demo_meta_workflows.py +0 -0
  198. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/demos/demo_progressive_demo.py +0 -0
  199. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/demos/demo_security_complete.py +0 -0
  200. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/demos/demo_test_workflow.py +0 -0
  201. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
  202. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/domain_wizards/healthcare_example.py +0 -0
  203. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
  204. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/event_streaming_demo.py +0 -0
  205. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/feedback_loop_demo.py +0 -0
  206. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/hybrid_cli_demo.py +0 -0
  207. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/interactive_team_creation.py +0 -0
  208. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/level_5_transformative/BLOG_POST.md +0 -0
  209. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/level_5_transformative/README.md +0 -0
  210. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
  211. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
  212. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/llm_toolkit_demo.py +0 -0
  213. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/meta_orchestrator_demo.py +0 -0
  214. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/multi_llm_usage.py +0 -0
  215. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/orchestration/advanced_composition.py +0 -0
  216. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/orchestration/basic_usage.py +0 -0
  217. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/orchestration/custom_workflow.py +0 -0
  218. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/progressive_test_gen_demo.py +0 -0
  219. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/quickstart/README.md +0 -0
  220. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/quickstart.py +0 -0
  221. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/redis_exploration.py +0 -0
  222. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/scanner_usage.py +0 -0
  223. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/security_integration_example.py +0 -0
  224. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/README.md +0 -0
  225. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/SOCRATIC_DEMO.md +0 -0
  226. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/complete_demo.py +0 -0
  227. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/config.yaml +0 -0
  228. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/dashboard_demo.py +0 -0
  229. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/demo.py +0 -0
  230. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/live_demo.py +0 -0
  231. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/seo_agent.py +0 -0
  232. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/utils.py +0 -0
  233. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/seo_optimization/with_memory_backend.py +0 -0
  234. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/simple_usage.py +0 -0
  235. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/smart_team_quickstart.py +0 -0
  236. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/sonnet_opus_fallback_example.py +0 -0
  237. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/suggest_adaptive_routing.py +0 -0
  238. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/test_approval_gates.py +0 -0
  239. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/test_debugging_wizard.py +0 -0
  240. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/workflow_chaining_demo.py +0 -0
  241. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/workflows/README.md +0 -0
  242. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/workflows/code_review_example.py +0 -0
  243. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/workflows/doc_gen_example.py +0 -0
  244. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/workflows/multi_model_example.py +0 -0
  245. {attune_ai-2.1.1 → attune_ai-2.1.2}/examples/workflows/research_example.py +0 -0
  246. {attune_ai-2.1.1 → attune_ai-2.1.2}/requirements.txt +0 -0
  247. {attune_ai-2.1.1 → attune_ai-2.1.2}/setup.cfg +0 -0
  248. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/__init__.py +0 -0
  249. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/adaptive/__init__.py +0 -0
  250. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/adaptive/task_complexity.py +0 -0
  251. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/agent_monitoring.py +0 -0
  252. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache/__init__.py +0 -0
  253. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache/base.py +0 -0
  254. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache/dependency_manager.py +0 -0
  255. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache/hash_only.py +0 -0
  256. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache/hybrid.py +0 -0
  257. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache/storage.py +0 -0
  258. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache_monitor.py +0 -0
  259. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cache_stats.py +0 -0
  260. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/__init__.py +0 -0
  261. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/__main__.py +0 -0
  262. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/__init__.py +0 -0
  263. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/batch.py +0 -0
  264. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/cache.py +0 -0
  265. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/help.py +0 -0
  266. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/info.py +0 -0
  267. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/inspect.py +0 -0
  268. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/inspection.py +0 -0
  269. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/memory.py +0 -0
  270. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/metrics.py +0 -0
  271. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/orchestrate.py +0 -0
  272. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/patterns.py +0 -0
  273. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/profiling.py +0 -0
  274. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/provider.py +0 -0
  275. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/routing.py +0 -0
  276. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/setup.py +0 -0
  277. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/status.py +0 -0
  278. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/sync.py +0 -0
  279. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/tier.py +0 -0
  280. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/utilities.py +0 -0
  281. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/commands/workflow.py +0 -0
  282. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/core.py +0 -0
  283. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/__init__.py +0 -0
  284. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/batch.py +0 -0
  285. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/cache.py +0 -0
  286. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/help.py +0 -0
  287. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/info.py +0 -0
  288. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/inspect.py +0 -0
  289. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/metrics.py +0 -0
  290. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/orchestrate.py +0 -0
  291. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/patterns.py +0 -0
  292. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/provider.py +0 -0
  293. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/routing.py +0 -0
  294. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/setup.py +0 -0
  295. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/status.py +0 -0
  296. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/sync.py +0 -0
  297. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/tier.py +0 -0
  298. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/parsers/workflow.py +0 -0
  299. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/utils/__init__.py +0 -0
  300. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/utils/data.py +0 -0
  301. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli/utils/helpers.py +0 -0
  302. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli_legacy.py +0 -0
  303. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli_minimal.py +0 -0
  304. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli_router.py +0 -0
  305. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cli_unified.py +0 -0
  306. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/config/__init__.py +0 -0
  307. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/config/xml_config.py +0 -0
  308. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/config.py +0 -0
  309. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/coordination.py +0 -0
  310. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/core.py +0 -0
  311. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/core_modules/__init__.py +0 -0
  312. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/cost_tracker.py +0 -0
  313. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/dashboard/__init__.py +0 -0
  314. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/dashboard/app.py +0 -0
  315. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/dashboard/simple_server.py +0 -0
  316. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/dashboard/standalone_server.py +0 -0
  317. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/discovery.py +0 -0
  318. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/emergence.py +0 -0
  319. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/exceptions.py +0 -0
  320. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/feedback_loops.py +0 -0
  321. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/README.md +0 -0
  322. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/__init__.py +0 -0
  323. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/config.py +0 -0
  324. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/integration.py +0 -0
  325. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/reloader.py +0 -0
  326. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/watcher.py +0 -0
  327. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/hot_reload/websocket.py +0 -0
  328. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/levels.py +0 -0
  329. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/leverage_points.py +0 -0
  330. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/logging_config.py +0 -0
  331. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/mcp/__init__.py +0 -0
  332. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/mcp/server.py +0 -0
  333. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/__init__.py +0 -0
  334. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/claude_memory.py +0 -0
  335. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/config.py +0 -0
  336. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/control_panel.py +0 -0
  337. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/control_panel_support.py +0 -0
  338. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/cross_session.py +0 -0
  339. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/edges.py +0 -0
  340. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/encryption.py +0 -0
  341. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/file_session.py +0 -0
  342. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/graph.py +0 -0
  343. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/long_term.py +0 -0
  344. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/long_term_types.py +0 -0
  345. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/__init__.py +0 -0
  346. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/backend_init_mixin.py +0 -0
  347. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/capabilities_mixin.py +0 -0
  348. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/handoff_mixin.py +0 -0
  349. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/lifecycle_mixin.py +0 -0
  350. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/long_term_mixin.py +0 -0
  351. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/promotion_mixin.py +0 -0
  352. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/mixins/short_term_mixin.py +0 -0
  353. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/nodes.py +0 -0
  354. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/redis_bootstrap.py +0 -0
  355. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/security/__init__.py +0 -0
  356. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/security/audit_logger.py +0 -0
  357. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/security/pii_scrubber.py +0 -0
  358. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/security/secrets_detector.py +0 -0
  359. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/short_term.py +0 -0
  360. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/simple_storage.py +0 -0
  361. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/storage/__init__.py +0 -0
  362. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/storage_backend.py +0 -0
  363. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/summary_index.py +0 -0
  364. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/types.py +0 -0
  365. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/memory/unified.py +0 -0
  366. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/__init__.py +0 -0
  367. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/agent_creator.py +0 -0
  368. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/builtin_templates.py +0 -0
  369. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/__init__.py +0 -0
  370. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/agent_commands.py +0 -0
  371. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/analytics_commands.py +0 -0
  372. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/config_commands.py +0 -0
  373. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/memory_commands.py +0 -0
  374. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/template_commands.py +0 -0
  375. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_commands/workflow_commands.py +0 -0
  376. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/cli_meta_workflows.py +0 -0
  377. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/form_engine.py +0 -0
  378. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/intent_detector.py +0 -0
  379. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/models.py +0 -0
  380. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/pattern_learner.py +0 -0
  381. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/plan_generator.py +0 -0
  382. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/session_context.py +0 -0
  383. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/template_registry.py +0 -0
  384. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/meta_workflows/workflow.py +0 -0
  385. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/metrics/__init__.py +0 -0
  386. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/metrics/collector.py +0 -0
  387. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/metrics/prompt_metrics.py +0 -0
  388. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/__init__.py +0 -0
  389. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/__main__.py +0 -0
  390. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/adaptive_routing.py +0 -0
  391. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/auth_cli.py +0 -0
  392. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/auth_strategy.py +0 -0
  393. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/cli.py +0 -0
  394. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/empathy_executor.py +0 -0
  395. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/executor.py +0 -0
  396. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/fallback.py +0 -0
  397. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/provider_config.py +0 -0
  398. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/registry.py +0 -0
  399. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/tasks.py +0 -0
  400. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/telemetry/__init__.py +0 -0
  401. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/telemetry/analytics.py +0 -0
  402. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/telemetry/backend.py +0 -0
  403. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/telemetry/data_models.py +0 -0
  404. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/telemetry/storage.py +0 -0
  405. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/token_estimator.py +0 -0
  406. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/models/validation.py +0 -0
  407. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/monitoring/__init__.py +0 -0
  408. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/monitoring/alerts.py +0 -0
  409. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/monitoring/alerts_cli.py +0 -0
  410. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/monitoring/multi_backend.py +0 -0
  411. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/monitoring/otel_backend.py +0 -0
  412. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/optimization/__init__.py +0 -0
  413. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/optimization/context_optimizer.py +0 -0
  414. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/__init__.py +0 -0
  415. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/agent_templates.py +0 -0
  416. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/config_store.py +0 -0
  417. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/execution_strategies.py +0 -0
  418. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/meta_orchestrator.py +0 -0
  419. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/pattern_learner.py +0 -0
  420. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/orchestration/real_tools.py +0 -0
  421. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/pattern_cache.py +0 -0
  422. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/pattern_library.py +0 -0
  423. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/patterns/debugging/all_patterns.json +0 -0
  424. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/patterns/debugging/workflow_20260107_1770825e.json +0 -0
  425. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/patterns/refactoring_memory.json +0 -0
  426. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/persistence.py +0 -0
  427. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/platform_utils.py +0 -0
  428. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/plugins/__init__.py +0 -0
  429. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/plugins/base.py +0 -0
  430. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/plugins/registry.py +0 -0
  431. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/__init__.py +0 -0
  432. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/cli.py +0 -0
  433. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/index.py +0 -0
  434. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/models.py +0 -0
  435. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/reports.py +0 -0
  436. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/scanner.py +0 -0
  437. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/project_index/scanner_parallel.py +0 -0
  438. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/prompts/__init__.py +0 -0
  439. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/prompts/config.py +0 -0
  440. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/prompts/context.py +0 -0
  441. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/prompts/parser.py +0 -0
  442. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/prompts/registry.py +0 -0
  443. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/prompts/templates.py +0 -0
  444. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/redis_config.py +0 -0
  445. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/redis_memory.py +0 -0
  446. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/resilience/__init__.py +0 -0
  447. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/resilience/circuit_breaker.py +0 -0
  448. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/resilience/fallback.py +0 -0
  449. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/resilience/health.py +0 -0
  450. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/resilience/retry.py +0 -0
  451. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/resilience/timeout.py +0 -0
  452. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/routing/__init__.py +0 -0
  453. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/routing/chain_executor.py +0 -0
  454. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/routing/classifier.py +0 -0
  455. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/routing/smart_router.py +0 -0
  456. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/routing/workflow_registry.py +0 -0
  457. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/README.md +0 -0
  458. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/__init__.py +0 -0
  459. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/__main__.py +0 -0
  460. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/cli.py +0 -0
  461. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/templates/base_wizard.py.jinja2 +0 -0
  462. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/templates/coach_wizard.py.jinja2 +0 -0
  463. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/templates/domain_wizard.py.jinja2 +0 -0
  464. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/scaffolding/templates/linear_flow_wizard.py.jinja2 +0 -0
  465. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/__init__.py +0 -0
  466. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/ab_testing.py +0 -0
  467. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/blueprint.py +0 -0
  468. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/cli.py +0 -0
  469. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/collaboration.py +0 -0
  470. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/domain_templates.py +0 -0
  471. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/embeddings.py +0 -0
  472. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/engine.py +0 -0
  473. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/explainer.py +0 -0
  474. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/feedback.py +0 -0
  475. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/forms.py +0 -0
  476. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/generator.py +0 -0
  477. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/llm_analyzer.py +0 -0
  478. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/mcp_server.py +0 -0
  479. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/session.py +0 -0
  480. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/storage.py +0 -0
  481. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/success.py +0 -0
  482. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/visual_editor.py +0 -0
  483. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/socratic/web_ui.py +0 -0
  484. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/__init__.py +0 -0
  485. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/agent_coordination.py +0 -0
  486. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/agent_tracking.py +0 -0
  487. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/approval_gates.py +0 -0
  488. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/cli.py +0 -0
  489. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/commands/__init__.py +0 -0
  490. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/commands/dashboard_commands.py +0 -0
  491. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/event_streaming.py +0 -0
  492. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/feedback_loop.py +0 -0
  493. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/telemetry/usage_tracker.py +0 -0
  494. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/templates.py +0 -0
  495. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/test_generator/__init__.py +0 -0
  496. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/test_generator/__main__.py +0 -0
  497. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/test_generator/cli.py +0 -0
  498. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/test_generator/generator.py +0 -0
  499. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/test_generator/risk_analyzer.py +0 -0
  500. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/test_generator/templates/unit_test.py.jinja2 +0 -0
  501. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/tier_recommender.py +0 -0
  502. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/tools.py +0 -0
  503. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/trust/__init__.py +0 -0
  504. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/trust/circuit_breaker.py +0 -0
  505. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/trust_building.py +0 -0
  506. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/validation/__init__.py +0 -0
  507. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/validation/xml_validator.py +0 -0
  508. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_commands.py +0 -0
  509. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_patterns/__init__.py +0 -0
  510. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_patterns/behavior.py +0 -0
  511. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_patterns/core.py +0 -0
  512. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_patterns/output.py +0 -0
  513. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_patterns/registry.py +0 -0
  514. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflow_patterns/structural.py +0 -0
  515. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/__init__.py +0 -0
  516. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/autonomous_test_gen.py +0 -0
  517. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/base.py +0 -0
  518. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/batch_processing.py +0 -0
  519. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/bug_predict.py +0 -0
  520. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/builder.py +0 -0
  521. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/caching.py +0 -0
  522. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/code_review.py +0 -0
  523. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/code_review_adapters.py +0 -0
  524. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/code_review_pipeline.py +0 -0
  525. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/config.py +0 -0
  526. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/dependency_check.py +0 -0
  527. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/document_gen/__init__.py +0 -0
  528. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/document_gen/config.py +0 -0
  529. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/document_gen/report_formatter.py +0 -0
  530. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/document_gen/workflow.py +0 -0
  531. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/document_manager.py +0 -0
  532. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/document_manager_README.md +0 -0
  533. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/documentation_orchestrator.py +0 -0
  534. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/history.py +0 -0
  535. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/keyboard_shortcuts/__init__.py +0 -0
  536. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/keyboard_shortcuts/generators.py +0 -0
  537. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/keyboard_shortcuts/parsers.py +0 -0
  538. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/keyboard_shortcuts/prompts.py +0 -0
  539. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/keyboard_shortcuts/schema.py +0 -0
  540. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/keyboard_shortcuts/workflow.py +0 -0
  541. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/llm_base.py +0 -0
  542. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/manage_docs.py +0 -0
  543. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/manage_docs_README.md +0 -0
  544. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/manage_documentation.py +0 -0
  545. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/new_sample_workflow1.py +0 -0
  546. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/new_sample_workflow1_README.md +0 -0
  547. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/orchestrated_health_check.py +0 -0
  548. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/orchestrated_release_prep.py +0 -0
  549. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/output.py +0 -0
  550. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/perf_audit.py +0 -0
  551. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/pr_review.py +0 -0
  552. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progress.py +0 -0
  553. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progress_server.py +0 -0
  554. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/README.md +0 -0
  555. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/__init__.py +0 -0
  556. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/cli.py +0 -0
  557. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/core.py +0 -0
  558. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/orchestrator.py +0 -0
  559. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/reports.py +0 -0
  560. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/telemetry.py +0 -0
  561. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/test_gen.py +0 -0
  562. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/progressive/workflow.py +0 -0
  563. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/refactor_plan.py +0 -0
  564. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/release_prep.py +0 -0
  565. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/release_prep_crew.py +0 -0
  566. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/research_synthesis.py +0 -0
  567. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/routing.py +0 -0
  568. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/secure_release.py +0 -0
  569. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/security_adapters.py +0 -0
  570. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/security_audit.py +0 -0
  571. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/security_audit_phase3.py +0 -0
  572. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/seo_optimization.py +0 -0
  573. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/step_config.py +0 -0
  574. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/telemetry_mixin.py +0 -0
  575. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test5.py +0 -0
  576. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test5_README.md +0 -0
  577. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_coverage_boost_crew.py +0 -0
  578. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/__init__.py +0 -0
  579. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/ast_analyzer.py +0 -0
  580. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/config.py +0 -0
  581. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/data_models.py +0 -0
  582. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/report_formatter.py +0 -0
  583. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/test_templates.py +0 -0
  584. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen/workflow.py +0 -0
  585. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen.py +0 -0
  586. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen_behavioral.py +0 -0
  587. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_gen_parallel.py +0 -0
  588. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_lifecycle.py +0 -0
  589. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_maintenance.py +0 -0
  590. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_maintenance_cli.py +0 -0
  591. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_maintenance_crew.py +0 -0
  592. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/test_runner.py +0 -0
  593. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/tier_tracking.py +0 -0
  594. {attune_ai-2.1.1 → attune_ai-2.1.2}/src/attune/workflows/xml_enhanced_crew.py +0 -0
  595. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_agent_factory.py +0 -0
  596. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_agent_factory_memory.py +0 -0
  597. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_agent_factory_resilience.py +0 -0
  598. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_audit_logger.py +0 -0
  599. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_audit_logger_extended.py +0 -0
  600. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_base.py +0 -0
  601. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_baseline.py +0 -0
  602. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_book_production_agents.py +0 -0
  603. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_bug_predict_workflow.py +0 -0
  604. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_claude_memory.py +0 -0
  605. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_claude_memory_extended.py +0 -0
  606. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_clinical_protocol_monitor.py +0 -0
  607. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_code_health.py +0 -0
  608. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_code_review.py +0 -0
  609. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_code_review_crew_integration.py +0 -0
  610. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_code_review_pipeline.py +0 -0
  611. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_code_review_pipeline_workflow.py +0 -0
  612. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_code_review_workflow.py +0 -0
  613. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_config.py +0 -0
  614. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_control_panel.py +0 -0
  615. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_control_panel_security.py +0 -0
  616. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_coordination.py +0 -0
  617. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_core.py +0 -0
  618. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_core_reliability.py +0 -0
  619. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_cost_tracker.py +0 -0
  620. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_dependency_check.py +0 -0
  621. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_dependency_check_workflow.py +0 -0
  622. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_discovery.py +0 -0
  623. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_document_gen.py +0 -0
  624. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_document_gen_workflow.py +0 -0
  625. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_emergence.py +0 -0
  626. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_empathy_llm_core.py +0 -0
  627. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_empathy_llm_security.py +0 -0
  628. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_empathy_os.py +0 -0
  629. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_exceptions.py +0 -0
  630. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_executor_integration.py +0 -0
  631. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_fallback.py +0 -0
  632. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_fallback_suite.py +0 -0
  633. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_feedback_loops.py +0 -0
  634. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_finding_extraction.py +0 -0
  635. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_graph.py +0 -0
  636. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_health_check.py +0 -0
  637. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_healthcare_plugin.py +0 -0
  638. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_intelligence_integration.py +0 -0
  639. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_levels.py +0 -0
  640. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_leverage_points.py +0 -0
  641. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_integration.py +0 -0
  642. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_agents.py +0 -0
  643. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_core.py +0 -0
  644. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_decorators.py +0 -0
  645. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_empathy_core.py +0 -0
  646. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_langgraph_adapter.py +0 -0
  647. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_levels.py +0 -0
  648. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_memory.py +0 -0
  649. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_patterns.py +0 -0
  650. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_providers.py +0 -0
  651. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_security.py +0 -0
  652. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_session_status.py +0 -0
  653. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_llm_toolkit_wizard_adapter.py +0 -0
  654. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_logging_config.py +0 -0
  655. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_long_term.py +0 -0
  656. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_memory_graph.py +0 -0
  657. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_model_registry.py +0 -0
  658. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_model_router.py +0 -0
  659. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_monitoring.py +0 -0
  660. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_pattern_cache.py +0 -0
  661. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_pattern_library.py +0 -0
  662. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_perf_audit_workflow.py +0 -0
  663. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_persistence.py +0 -0
  664. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_pii_scrubber.py +0 -0
  665. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_pii_scrubber_extended.py +0 -0
  666. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_platform_compat_ci.py +0 -0
  667. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_platform_utils.py +0 -0
  668. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_plugin_base.py +0 -0
  669. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_plugin_registry.py +0 -0
  670. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_pr_review.py +0 -0
  671. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_pr_review_workflow.py +0 -0
  672. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_production_smoke.py +0 -0
  673. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_progress.py +0 -0
  674. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_protocol_checker.py +0 -0
  675. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_protocol_loader.py +0 -0
  676. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_provider_config.py +0 -0
  677. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_providers.py +0 -0
  678. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_redis_bootstrap.py +0 -0
  679. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_redis_config.py +0 -0
  680. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_redis_integration.py +0 -0
  681. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_redis_memory.py +0 -0
  682. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_redis_memory_errors.py +0 -0
  683. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_refactor_golden.py +0 -0
  684. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_refactor_plan_workflow.py +0 -0
  685. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_refactoring.py +0 -0
  686. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_refactoring_crew.py +0 -0
  687. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_registry.py +0 -0
  688. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_release_prep.py +0 -0
  689. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_reporting.py +0 -0
  690. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_reports.py +0 -0
  691. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_resilience.py +0 -0
  692. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_sbar_wizard.py +0 -0
  693. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_scanner.py +0 -0
  694. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_scanner_exceptions.py +0 -0
  695. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_secrets_detector.py +0 -0
  696. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_secure_memdocs.py +0 -0
  697. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_secure_memdocs_extended.py +0 -0
  698. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_secure_release.py +0 -0
  699. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_secure_release_workflow.py +0 -0
  700. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_audit.py +0 -0
  701. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_audit_crew.py +0 -0
  702. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_audit_workflow.py +0 -0
  703. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_crew_integration.py +0 -0
  704. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_integration.py +0 -0
  705. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_negative_cases.py +0 -0
  706. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_security_scan.py +0 -0
  707. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_sensor_parsers.py +0 -0
  708. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_session_status.py +0 -0
  709. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_short_term.py +0 -0
  710. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_smart_router.py +0 -0
  711. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_smoke.py +0 -0
  712. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_sonnet_opus_fallback.py +0 -0
  713. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_state.py +0 -0
  714. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_step_config.py +0 -0
  715. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_summary_index.py +0 -0
  716. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_sync_claude.py +0 -0
  717. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_tech_debt_wizard.py +0 -0
  718. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_telemetry.py +0 -0
  719. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_templates.py +0 -0
  720. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_timeout.py +0 -0
  721. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_token_estimator.py +0 -0
  722. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_trajectory_analyzer.py +0 -0
  723. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_trust_building.py +0 -0
  724. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_trust_circuit_breaker.py +0 -0
  725. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_unified_memory.py +0 -0
  726. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_validation.py +0 -0
  727. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_wizard_outputs.py +0 -0
  728. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_wizard_site_comprehensive.py +0 -0
  729. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_workflow_base.py +0 -0
  730. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_workflow_commands.py +0 -0
  731. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_workflow_wizard_integration.py +0 -0
  732. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_xml_prompts.py +0 -0
  733. {attune_ai-2.1.1 → attune_ai-2.1.2}/tests/test_xml_spec_generation.py +0 -0
  734. {attune_ai-2.1.1 → attune_ai-2.1.2}/workflow_scaffolding/__init__.py +0 -0
  735. {attune_ai-2.1.1 → attune_ai-2.1.2}/workflow_scaffolding/__main__.py +0 -0
  736. {attune_ai-2.1.1 → attune_ai-2.1.2}/workflow_scaffolding/cli.py +0 -0
  737. {attune_ai-2.1.1 → attune_ai-2.1.2}/workflow_scaffolding/generator.py +0 -0
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.1.2] - 2026-02-02
11
+
12
+ ### Fixed
13
+
14
+ - **PyPI packaging**: Re-release to include `.attune` branding fix (2.1.1 was built before the fix was merged)
15
+
16
+ ## [2.1.1] - 2026-02-02
17
+
18
+ ### Fixed
19
+
20
+ - **vscode_bridge.py**: Updated `get_empathy_dir()` to use `.attune` directory (completes branding migration from `.empathy`)
21
+ - **test_vscode_bridge_coverage_boost.py**: Aligned test expectations with `.attune` directory naming
22
+
10
23
  ## [2.1.0] - 2026-02-01
11
24
 
12
25
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: attune-ai
3
- Version: 2.1.1
3
+ Version: 2.1.2
4
4
  Summary: AI collaboration framework with real LLM agent execution, AskUserQuestion tool integration, Socratic agent generation, progressive tier escalation (70-85% cost savings), meta-orchestration, dynamic agent composition (10 patterns including Anthropic-inspired), intelligent caching (85% hit rate), semantic workflow discovery, visual workflow editor, MCP integration for Claude Code, and multi-agent orchestration.
5
5
  Author-email: Patrick Roebuck <admin@smartaimemory.com>
6
6
  Maintainer-email: Smart-AI-Memory <admin@smartaimemory.com>
@@ -421,16 +421,17 @@ Requires-Dist: aiohttp<4.0.0,>=3.10.0; extra == "all"
421
421
  Requires-Dist: filelock<4.0.0,>=3.16.0; extra == "all"
422
422
  Dynamic: license-file
423
423
 
424
- # attune-ai
424
+ # Empathy Framework
425
425
 
426
- **AI-powered developer workflows with Socratic discovery.**
426
+ **AI-powered developer workflows with cost optimization and pattern learning.**
427
427
 
428
- Run code review, debugging, testing, and release workflows from Claude Code. One command guides you to the right workflow.
428
+ Run code review, debugging, testing, and release workflows from your terminal or Claude Code. Smart tier routing saves 34-86% on LLM costs.
429
429
 
430
430
  [![PyPI](https://img.shields.io/pypi/v/attune-ai?color=blue)](https://pypi.org/project/attune-ai/)
431
431
  [![Tests](https://img.shields.io/badge/tests-7%2C168%20passing%20(99.9%25)-brightgreen)](https://github.com/Smart-AI-Memory/attune-ai/actions)
432
432
  [![Python](https://img.shields.io/badge/python-3.10+-blue)](https://www.python.org)
433
433
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)
434
+ [![Performance](https://img.shields.io/badge/performance-18x%20faster-success)](https://github.com/Smart-AI-Memory/attune-ai/blob/main/CHANGELOG.md)
434
435
 
435
436
  ```bash
436
437
  pip install attune-ai[developer]
@@ -438,26 +439,188 @@ pip install attune-ai[developer]
438
439
 
439
440
  ---
440
441
 
441
- ## What's New in v2.1.0
442
+ ## 🎯 Transitioning to Claude-Native Architecture
442
443
 
443
- **🎯 Unified `/attune` Command** - One entry point for all workflows:
444
+ **Empathy Framework is evolving to focus exclusively on Anthropic/Claude** to unlock features impossible with multi-provider abstraction:
445
+
446
+ - **📦 Prompt Caching:** 90% cost reduction on repeated prompts
447
+ - **📖 Flexible Context:** 200K via subscription for most tasks, up to 1M via API for large codebases
448
+ - **🧠 Extended Thinking:** See Claude's internal reasoning process
449
+ - **🔧 Advanced Tool Use:** Optimized for agentic workflows
450
+
451
+ **Timeline:**
452
+
453
+ - ✅ **v4.8.0 (Jan 2026):** Deprecation warnings for OpenAI/Google/Ollama providers
454
+ - ✅ **v5.0.0 (Jan 26, 2026):** Non-Anthropic providers removed (BREAKING - COMPLETE)
455
+ - ✅ **v5.0.2 (Jan 28, 2026):** Cost optimization suite with batch processing and caching monitoring
456
+
457
+ **Migration Guide:** [docs/CLAUDE_NATIVE.md](docs/CLAUDE_NATIVE.md)
458
+
459
+ ---
460
+
461
+ ## What's New in v5.3.0
462
+
463
+ **🎨 Dashboard Enhancements** - Improved usability and clarity:
464
+
465
+ - **Agent Display Names** - Human-readable labels for agents in dashboard (e.g., "Code Analyzer" instead of UUID)
466
+ - **Comprehensive Help Panel** - 5-section accordion explaining dashboard features, use cases, and Redis setup
467
+ - **UX Improvements** - "Source Agent:" label clarity, "Redis Requires Enabling" status message
468
+ - **Browser Cache Busting** - Date-based versioning ensures updates appear immediately
469
+
470
+ **📚 Documentation Improvements**:
471
+
472
+ - Clarified flexible context strategy (200K subscription + 1M API routing)
473
+ - Added Redis requirement documentation for dashboard
474
+ - Root directory cleanup (8 archived files)
475
+
476
+ **🧪 Test Infrastructure**:
477
+
478
+ - Sequential test execution to fix import timing issues
479
+ - All agent tracking tests passing (19/19)
480
+
481
+ [See Full Changelog](CHANGELOG.md#530---2026-01-31)
482
+
483
+ ---
484
+
485
+ ## What's New in v5.1.0
486
+
487
+ **🤖 Multi-Agent Orchestration** - Full support for custom agents and Anthropic LLM agents:
488
+
489
+ - **Agent Coordination Dashboard** - Real-time monitoring with 6 coordination patterns:
490
+ - Agent heartbeats and status tracking
491
+ - Inter-agent coordination signals
492
+ - Event streaming across agent workflows
493
+ - Approval gates for human-in-the-loop
494
+ - Quality feedback and performance metrics
495
+ - Demo mode with test data generation
496
+
497
+ - **Custom Agents** - Build specialized agents for your workflow needs
498
+ - **LLM Agents from Anthropic** - Leverage Claude's advanced capabilities
499
+ - Dashboard accessible at `http://localhost:8000` with `python examples/dashboard_demo.py` **(Requires Redis)**
500
+
501
+ **🔐 Authentication Strategy System** - Intelligent routing between Claude subscriptions and Anthropic API:
444
502
 
445
503
  ```bash
446
- /attune # Start Socratic discovery
447
- /attune "fix a bug" # Natural language
448
- /attune debug # Direct shortcut
504
+ # Interactive setup
505
+ python -m attune.models.auth_cli setup
506
+
507
+ # View current configuration
508
+ python -m attune.models.auth_cli status
509
+
510
+ # Get recommendation for a file
511
+ python -m attune.models.auth_cli recommend src/module.py
449
512
  ```
450
513
 
451
- **Socratic Discovery** - Ask what you're trying to accomplish, not which tool to use:
514
+ **💰 Automatic Cost Optimization** - Workflows choose the best auth method:
515
+
516
+ - Small/medium modules (<2000 LOC) → Claude subscription (free)
517
+ - Large modules (>2000 LOC) → Anthropic API (pay for what you need)
518
+ - 7 workflows integrated: document-gen, test-gen, code-review, bug-predict, security-audit, perf-audit, release-prep
519
+ - Auth mode tracking in all workflow outputs for telemetry
520
+
521
+ **🧪 Comprehensive Testing** - 7 new integration tests for auth strategy:
522
+
523
+ - All workflows tested with auth enabled/disabled
524
+ - API and subscription mode verification
525
+ - Cost tracking validation
526
+
527
+ **📖 Documentation** - 950+ lines across 3 guides:
528
+
529
+ - [AUTH_STRATEGY_GUIDE.md](docs/AUTH_STRATEGY_GUIDE.md) - User guide for configuration
530
+ - [AUTH_CLI_IMPLEMENTATION.md](docs/AUTH_CLI_IMPLEMENTATION.md) - CLI command reference
531
+ - [AUTH_WORKFLOW_INTEGRATIONS.md](docs/AUTH_WORKFLOW_INTEGRATIONS.md) - Integration patterns
532
+
533
+ [See Full Changelog](CHANGELOG.md#510---2026-01-29)
534
+
535
+ ---
536
+
537
+ ## What's New in v5.0.2
538
+
539
+ **💰 50% Cost Savings with Batch API** - Process non-urgent tasks asynchronously:
540
+
541
+ ```bash
542
+ empathy batch submit batch_requests.json # Submit batch job
543
+ empathy batch status msgbatch_abc123 # Check progress
544
+ empathy batch results msgbatch_abc123 output.json # Download results
545
+ ```
546
+
547
+ Perfect for: log analysis, report generation, bulk classification, test generation
548
+
549
+ **📊 Precise Token Counting** - >98% accurate cost tracking:
550
+
551
+ - Integrated Anthropic's `count_tokens()` API for billing-accurate measurements
552
+ - 3-tier fallback: API → tiktoken (local) → heuristic
553
+ - Cache-aware cost calculation (25% write markup, 90% read discount)
554
+
555
+ **📈 Cache Performance Monitoring** - Track your 20-30% caching savings:
556
+
557
+ ```bash
558
+ empathy cache stats # Show hit rates and cost savings
559
+ empathy cache stats --verbose # Detailed token metrics
560
+ empathy cache stats --format json # Machine-readable output
561
+ ```
562
+
563
+ **🧭 Adaptive Routing Analytics** - Intelligent tier recommendations:
564
+
565
+ ```bash
566
+ empathy routing stats <workflow> # Performance metrics
567
+ empathy routing check --all # Tier upgrade recommendations
568
+ empathy routing models --provider anthropic # Compare models
569
+ ```
570
+
571
+ **🔧 Dashboard Fixes** - All 6 agent coordination patterns now operational:
572
+ - Agent heartbeats displaying correctly
573
+ - Event streaming functional
574
+ - Coordination signals working
575
+ - Approval gates operational
576
+
577
+ [See Full Changelog](CHANGELOG.md#502---2026-01-28) | [Batch API Guide](docs/BATCH_API_GUIDE.md) | [User API Docs](docs/USER_API_DOCUMENTATION.md)
578
+
579
+ ---
580
+
581
+ ## What's New in v4.9.0
582
+
583
+ **⚡ 18x Faster Performance** - Massive performance gains through Phase 2 optimizations:
584
+
585
+ - **Redis Two-Tier Caching:** 2x faster memory operations (37,000x for cached keys)
586
+ - **Generator Expressions:** 99.9% memory reduction across 27 optimizations
587
+ - **Parallel Scanning:** Multi-core processing enabled by default (2-4x faster)
588
+ - **Incremental Scanning:** Git diff-based updates (10x faster)
589
+
590
+ **🧭 Natural Language Workflows** - Use plain English instead of workflow names:
591
+
592
+ ```bash
593
+ /workflows "find security vulnerabilities" # → security-audit
594
+ /workflows "check code performance" # → perf-audit
595
+ /workflows "predict bugs" # → bug-predict
596
+ /plan "review my code" # → code-review
597
+ ```
598
+
599
+ **📊 Real-World Performance:**
600
+
601
+ - Combined workflow: 3.59s → 0.2s (**18x faster**)
602
+ - Full scan: 3,472 files in 0.98s (was 3.59s)
603
+ - Redis cached operations: 37ms → 0.001ms
604
+
605
+ **🎯 Improved Navigation:**
606
+
607
+ - Split `/workflow` into `/workflows` (automated analysis) and `/plan` (planning/review)
608
+ - Clearer hub organization with better categorization
609
+ - Natural language routing matches intent to workflow
610
+
611
+ [See CHANGELOG.md](CHANGELOG.md) | [Performance Docs](docs/REDIS_OPTIMIZATION_SUMMARY.md)
612
+
613
+ ---
614
+
615
+ ## What's New in v4.7.0
616
+
617
+ **$0 Workflows via Skills** - Multi-agent workflows run through Claude Code's Task tool instead of API calls. No additional cost with your Claude subscription.
452
618
 
453
- - 🔧 **Fix or improve** Debug, review, refactor
454
- - ✅ **Validate work** → Tests, coverage, security audit
455
- - 🚀 **Ship changes** → Commit, PR, release
456
- - 📚 **Understand** → Explain code, generate docs
619
+ **Socratic Workflows** - Interactive discovery through guided questions. Workflows ask what you need rather than requiring upfront configuration.
457
620
 
458
- **Performance Audit Improvements** - Removed false positive detection for intentional patterns like `dirs[:]` and defensive list copies.
621
+ **Security Hardened** - Fixed critical vulnerabilities (path traversal, JWT, SSRF).
459
622
 
460
- [See Full Changelog](CHANGELOG.md)
623
+ **Hub-Based Commands** - Organized workflows into intuitive command hubs.
461
624
 
462
625
  ---
463
626
 
@@ -1,13 +1,14 @@
1
- # attune-ai
1
+ # Empathy Framework
2
2
 
3
- **AI-powered developer workflows with Socratic discovery.**
3
+ **AI-powered developer workflows with cost optimization and pattern learning.**
4
4
 
5
- Run code review, debugging, testing, and release workflows from Claude Code. One command guides you to the right workflow.
5
+ Run code review, debugging, testing, and release workflows from your terminal or Claude Code. Smart tier routing saves 34-86% on LLM costs.
6
6
 
7
7
  [![PyPI](https://img.shields.io/pypi/v/attune-ai?color=blue)](https://pypi.org/project/attune-ai/)
8
8
  [![Tests](https://img.shields.io/badge/tests-7%2C168%20passing%20(99.9%25)-brightgreen)](https://github.com/Smart-AI-Memory/attune-ai/actions)
9
9
  [![Python](https://img.shields.io/badge/python-3.10+-blue)](https://www.python.org)
10
10
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)
11
+ [![Performance](https://img.shields.io/badge/performance-18x%20faster-success)](https://github.com/Smart-AI-Memory/attune-ai/blob/main/CHANGELOG.md)
11
12
 
12
13
  ```bash
13
14
  pip install attune-ai[developer]
@@ -15,26 +16,188 @@ pip install attune-ai[developer]
15
16
 
16
17
  ---
17
18
 
18
- ## What's New in v2.1.0
19
+ ## 🎯 Transitioning to Claude-Native Architecture
19
20
 
20
- **🎯 Unified `/attune` Command** - One entry point for all workflows:
21
+ **Empathy Framework is evolving to focus exclusively on Anthropic/Claude** to unlock features impossible with multi-provider abstraction:
22
+
23
+ - **📦 Prompt Caching:** 90% cost reduction on repeated prompts
24
+ - **📖 Flexible Context:** 200K via subscription for most tasks, up to 1M via API for large codebases
25
+ - **🧠 Extended Thinking:** See Claude's internal reasoning process
26
+ - **🔧 Advanced Tool Use:** Optimized for agentic workflows
27
+
28
+ **Timeline:**
29
+
30
+ - ✅ **v4.8.0 (Jan 2026):** Deprecation warnings for OpenAI/Google/Ollama providers
31
+ - ✅ **v5.0.0 (Jan 26, 2026):** Non-Anthropic providers removed (BREAKING - COMPLETE)
32
+ - ✅ **v5.0.2 (Jan 28, 2026):** Cost optimization suite with batch processing and caching monitoring
33
+
34
+ **Migration Guide:** [docs/CLAUDE_NATIVE.md](docs/CLAUDE_NATIVE.md)
35
+
36
+ ---
37
+
38
+ ## What's New in v5.3.0
39
+
40
+ **🎨 Dashboard Enhancements** - Improved usability and clarity:
41
+
42
+ - **Agent Display Names** - Human-readable labels for agents in dashboard (e.g., "Code Analyzer" instead of UUID)
43
+ - **Comprehensive Help Panel** - 5-section accordion explaining dashboard features, use cases, and Redis setup
44
+ - **UX Improvements** - "Source Agent:" label clarity, "Redis Requires Enabling" status message
45
+ - **Browser Cache Busting** - Date-based versioning ensures updates appear immediately
46
+
47
+ **📚 Documentation Improvements**:
48
+
49
+ - Clarified flexible context strategy (200K subscription + 1M API routing)
50
+ - Added Redis requirement documentation for dashboard
51
+ - Root directory cleanup (8 archived files)
52
+
53
+ **🧪 Test Infrastructure**:
54
+
55
+ - Sequential test execution to fix import timing issues
56
+ - All agent tracking tests passing (19/19)
57
+
58
+ [See Full Changelog](CHANGELOG.md#530---2026-01-31)
59
+
60
+ ---
61
+
62
+ ## What's New in v5.1.0
63
+
64
+ **🤖 Multi-Agent Orchestration** - Full support for custom agents and Anthropic LLM agents:
65
+
66
+ - **Agent Coordination Dashboard** - Real-time monitoring with 6 coordination patterns:
67
+ - Agent heartbeats and status tracking
68
+ - Inter-agent coordination signals
69
+ - Event streaming across agent workflows
70
+ - Approval gates for human-in-the-loop
71
+ - Quality feedback and performance metrics
72
+ - Demo mode with test data generation
73
+
74
+ - **Custom Agents** - Build specialized agents for your workflow needs
75
+ - **LLM Agents from Anthropic** - Leverage Claude's advanced capabilities
76
+ - Dashboard accessible at `http://localhost:8000` with `python examples/dashboard_demo.py` **(Requires Redis)**
77
+
78
+ **🔐 Authentication Strategy System** - Intelligent routing between Claude subscriptions and Anthropic API:
21
79
 
22
80
  ```bash
23
- /attune # Start Socratic discovery
24
- /attune "fix a bug" # Natural language
25
- /attune debug # Direct shortcut
81
+ # Interactive setup
82
+ python -m attune.models.auth_cli setup
83
+
84
+ # View current configuration
85
+ python -m attune.models.auth_cli status
86
+
87
+ # Get recommendation for a file
88
+ python -m attune.models.auth_cli recommend src/module.py
26
89
  ```
27
90
 
28
- **Socratic Discovery** - Ask what you're trying to accomplish, not which tool to use:
91
+ **💰 Automatic Cost Optimization** - Workflows choose the best auth method:
92
+
93
+ - Small/medium modules (<2000 LOC) → Claude subscription (free)
94
+ - Large modules (>2000 LOC) → Anthropic API (pay for what you need)
95
+ - 7 workflows integrated: document-gen, test-gen, code-review, bug-predict, security-audit, perf-audit, release-prep
96
+ - Auth mode tracking in all workflow outputs for telemetry
97
+
98
+ **🧪 Comprehensive Testing** - 7 new integration tests for auth strategy:
99
+
100
+ - All workflows tested with auth enabled/disabled
101
+ - API and subscription mode verification
102
+ - Cost tracking validation
103
+
104
+ **📖 Documentation** - 950+ lines across 3 guides:
105
+
106
+ - [AUTH_STRATEGY_GUIDE.md](docs/AUTH_STRATEGY_GUIDE.md) - User guide for configuration
107
+ - [AUTH_CLI_IMPLEMENTATION.md](docs/AUTH_CLI_IMPLEMENTATION.md) - CLI command reference
108
+ - [AUTH_WORKFLOW_INTEGRATIONS.md](docs/AUTH_WORKFLOW_INTEGRATIONS.md) - Integration patterns
109
+
110
+ [See Full Changelog](CHANGELOG.md#510---2026-01-29)
111
+
112
+ ---
113
+
114
+ ## What's New in v5.0.2
115
+
116
+ **💰 50% Cost Savings with Batch API** - Process non-urgent tasks asynchronously:
117
+
118
+ ```bash
119
+ empathy batch submit batch_requests.json # Submit batch job
120
+ empathy batch status msgbatch_abc123 # Check progress
121
+ empathy batch results msgbatch_abc123 output.json # Download results
122
+ ```
123
+
124
+ Perfect for: log analysis, report generation, bulk classification, test generation
125
+
126
+ **📊 Precise Token Counting** - >98% accurate cost tracking:
127
+
128
+ - Integrated Anthropic's `count_tokens()` API for billing-accurate measurements
129
+ - 3-tier fallback: API → tiktoken (local) → heuristic
130
+ - Cache-aware cost calculation (25% write markup, 90% read discount)
131
+
132
+ **📈 Cache Performance Monitoring** - Track your 20-30% caching savings:
133
+
134
+ ```bash
135
+ empathy cache stats # Show hit rates and cost savings
136
+ empathy cache stats --verbose # Detailed token metrics
137
+ empathy cache stats --format json # Machine-readable output
138
+ ```
139
+
140
+ **🧭 Adaptive Routing Analytics** - Intelligent tier recommendations:
141
+
142
+ ```bash
143
+ empathy routing stats <workflow> # Performance metrics
144
+ empathy routing check --all # Tier upgrade recommendations
145
+ empathy routing models --provider anthropic # Compare models
146
+ ```
147
+
148
+ **🔧 Dashboard Fixes** - All 6 agent coordination patterns now operational:
149
+ - Agent heartbeats displaying correctly
150
+ - Event streaming functional
151
+ - Coordination signals working
152
+ - Approval gates operational
153
+
154
+ [See Full Changelog](CHANGELOG.md#502---2026-01-28) | [Batch API Guide](docs/BATCH_API_GUIDE.md) | [User API Docs](docs/USER_API_DOCUMENTATION.md)
155
+
156
+ ---
157
+
158
+ ## What's New in v4.9.0
159
+
160
+ **⚡ 18x Faster Performance** - Massive performance gains through Phase 2 optimizations:
161
+
162
+ - **Redis Two-Tier Caching:** 2x faster memory operations (37,000x for cached keys)
163
+ - **Generator Expressions:** 99.9% memory reduction across 27 optimizations
164
+ - **Parallel Scanning:** Multi-core processing enabled by default (2-4x faster)
165
+ - **Incremental Scanning:** Git diff-based updates (10x faster)
166
+
167
+ **🧭 Natural Language Workflows** - Use plain English instead of workflow names:
168
+
169
+ ```bash
170
+ /workflows "find security vulnerabilities" # → security-audit
171
+ /workflows "check code performance" # → perf-audit
172
+ /workflows "predict bugs" # → bug-predict
173
+ /plan "review my code" # → code-review
174
+ ```
175
+
176
+ **📊 Real-World Performance:**
177
+
178
+ - Combined workflow: 3.59s → 0.2s (**18x faster**)
179
+ - Full scan: 3,472 files in 0.98s (was 3.59s)
180
+ - Redis cached operations: 37ms → 0.001ms
181
+
182
+ **🎯 Improved Navigation:**
183
+
184
+ - Split `/workflow` into `/workflows` (automated analysis) and `/plan` (planning/review)
185
+ - Clearer hub organization with better categorization
186
+ - Natural language routing matches intent to workflow
187
+
188
+ [See CHANGELOG.md](CHANGELOG.md) | [Performance Docs](docs/REDIS_OPTIMIZATION_SUMMARY.md)
189
+
190
+ ---
191
+
192
+ ## What's New in v4.7.0
193
+
194
+ **$0 Workflows via Skills** - Multi-agent workflows run through Claude Code's Task tool instead of API calls. No additional cost with your Claude subscription.
29
195
 
30
- - 🔧 **Fix or improve** Debug, review, refactor
31
- - ✅ **Validate work** → Tests, coverage, security audit
32
- - 🚀 **Ship changes** → Commit, PR, release
33
- - 📚 **Understand** → Explain code, generate docs
196
+ **Socratic Workflows** - Interactive discovery through guided questions. Workflows ask what you need rather than requiring upfront configuration.
34
197
 
35
- **Performance Audit Improvements** - Removed false positive detection for intentional patterns like `dirs[:]` and defensive list copies.
198
+ **Security Hardened** - Fixed critical vulnerabilities (path traversal, JWT, SSRF).
36
199
 
37
- [See Full Changelog](CHANGELOG.md)
200
+ **Hub-Based Commands** - Organized workflows into intuitive command hubs.
38
201
 
39
202
  ---
40
203