attune-ai 2.1.1__tar.gz → 2.1.3__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 (738) hide show
  1. {attune_ai-2.1.1 → attune_ai-2.1.3}/CHANGELOG.md +20 -0
  2. {attune_ai-2.1.1 → attune_ai-2.1.3}/PKG-INFO +97 -251
  3. attune_ai-2.1.3/README.md +286 -0
  4. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_ai.egg-info/PKG-INFO +97 -251
  5. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_ai.egg-info/SOURCES.txt +1 -0
  6. {attune_ai-2.1.1 → attune_ai-2.1.3}/pyproject.toml +1 -1
  7. attune_ai-2.1.3/src/attune/socratic_router.py +761 -0
  8. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/vscode_bridge.py +7 -4
  9. attune_ai-2.1.1/README.md +0 -440
  10. {attune_ai-2.1.1 → attune_ai-2.1.3}/.bandit +0 -0
  11. {attune_ai-2.1.1 → attune_ai-2.1.3}/CODE_OF_CONDUCT.md +0 -0
  12. {attune_ai-2.1.1 → attune_ai-2.1.3}/CONTRIBUTING.md +0 -0
  13. {attune_ai-2.1.1 → attune_ai-2.1.3}/LICENSE +0 -0
  14. {attune_ai-2.1.1 → attune_ai-2.1.3}/LICENSE_CHANGE_ANNOUNCEMENT.md +0 -0
  15. {attune_ai-2.1.1 → attune_ai-2.1.3}/MANIFEST.in +0 -0
  16. {attune_ai-2.1.1 → attune_ai-2.1.3}/SECURITY.md +0 -0
  17. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
  18. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
  19. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
  20. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
  21. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
  22. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
  23. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
  24. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
  25. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
  26. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
  27. {attune_ai-2.1.1 → attune_ai-2.1.3}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
  28. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_ai.egg-info/dependency_links.txt +0 -0
  29. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_ai.egg-info/entry_points.txt +0 -0
  30. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_ai.egg-info/requires.txt +0 -0
  31. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_ai.egg-info/top_level.txt +0 -0
  32. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/__init__.py +0 -0
  33. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/__init__.py +0 -0
  34. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/clinical_protocol_monitor.py +0 -0
  35. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/monitoring/__init__.py +0 -0
  36. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/monitoring/protocol_checker.py +0 -0
  37. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/monitoring/protocol_loader.py +0 -0
  38. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/monitoring/sensor_parsers.py +0 -0
  39. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_healthcare/monitors/monitoring/trajectory_analyzer.py +0 -0
  40. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/README.md +0 -0
  41. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/__init__.py +0 -0
  42. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/__init__.py +0 -0
  43. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/__init__.py +0 -0
  44. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/autogen_adapter.py +0 -0
  45. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/crewai_adapter.py +0 -0
  46. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/haystack_adapter.py +0 -0
  47. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/langchain_adapter.py +0 -0
  48. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/langgraph_adapter.py +0 -0
  49. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/native.py +0 -0
  50. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/adapters/wizard_adapter.py +0 -0
  51. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/base.py +0 -0
  52. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/crews/__init__.py +0 -0
  53. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/crews/code_review.py +0 -0
  54. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/crews/health_check.py +0 -0
  55. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/crews/refactoring.py +0 -0
  56. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/crews/security_audit.py +0 -0
  57. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/decorators.py +0 -0
  58. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/factory.py +0 -0
  59. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/framework.py +0 -0
  60. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/memory_integration.py +0 -0
  61. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agent_factory/resilient.py +0 -0
  62. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agents_md/__init__.py +0 -0
  63. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agents_md/loader.py +0 -0
  64. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agents_md/parser.py +0 -0
  65. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/agents_md/registry.py +0 -0
  66. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/claude_memory.py +0 -0
  67. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/cli/__init__.py +0 -0
  68. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/cli/sync_claude.py +0 -0
  69. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/code_health.py +0 -0
  70. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/commands/__init__.py +0 -0
  71. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/commands/context.py +0 -0
  72. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/commands/loader.py +0 -0
  73. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/commands/models.py +0 -0
  74. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/commands/parser.py +0 -0
  75. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/commands/registry.py +0 -0
  76. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/config/__init__.py +0 -0
  77. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/config/unified.py +0 -0
  78. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/context/__init__.py +0 -0
  79. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/context/compaction.py +0 -0
  80. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/context/manager.py +0 -0
  81. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/contextual_patterns.py +0 -0
  82. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/core.py +0 -0
  83. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/git_pattern_extractor.py +0 -0
  84. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/__init__.py +0 -0
  85. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/config.py +0 -0
  86. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/executor.py +0 -0
  87. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/registry.py +0 -0
  88. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/__init__.py +0 -0
  89. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/evaluate_session.py +0 -0
  90. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/first_time_init.py +0 -0
  91. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/pre_compact.py +0 -0
  92. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/session_end.py +0 -0
  93. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/session_start.py +0 -0
  94. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/hooks/scripts/suggest_compact.py +0 -0
  95. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/learning/__init__.py +0 -0
  96. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/learning/evaluator.py +0 -0
  97. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/learning/extractor.py +0 -0
  98. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/learning/storage.py +0 -0
  99. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/levels.py +0 -0
  100. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/pattern_confidence.py +0 -0
  101. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/pattern_resolver.py +0 -0
  102. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/pattern_summary.py +0 -0
  103. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/providers.py +0 -0
  104. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/routing/__init__.py +0 -0
  105. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/routing/model_router.py +0 -0
  106. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/IMPLEMENTATION_SUMMARY.md +0 -0
  107. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/PHASE2_COMPLETE.md +0 -0
  108. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +0 -0
  109. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/QUICK_REFERENCE.md +0 -0
  110. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/README.md +0 -0
  111. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/__init__.py +0 -0
  112. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/audit_logger.py +0 -0
  113. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/audit_logger_example.py +0 -0
  114. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/pii_scrubber.py +0 -0
  115. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/secrets_detector.py +0 -0
  116. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/secrets_detector_example.py +0 -0
  117. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/secure_memdocs.py +0 -0
  118. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/security/secure_memdocs_example.py +0 -0
  119. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/session_status.py +0 -0
  120. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/state.py +0 -0
  121. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/utils/__init__.py +0 -0
  122. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_llm/utils/tokens.py +0 -0
  123. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_software/SOFTWARE_PLUGIN_README.md +0 -0
  124. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_software/__init__.py +0 -0
  125. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_software/cli/__init__.py +0 -0
  126. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_software/cli/inspect.py +0 -0
  127. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_software/cli.py +0 -0
  128. {attune_ai-2.1.1 → attune_ai-2.1.3}/attune_software/plugin.py +0 -0
  129. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/README.md +0 -0
  130. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/config.md +0 -0
  131. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/core.md +0 -0
  132. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/empathy-os.md +0 -0
  133. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/index.md +0 -0
  134. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/llm-toolkit.md +0 -0
  135. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/memory.md +0 -0
  136. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/meta-orchestration.md +0 -0
  137. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/multi-agent.md +0 -0
  138. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/pattern-library.md +0 -0
  139. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/persistence.md +0 -0
  140. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/security-scanner.md +0 -0
  141. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/software-wizards.md +0 -0
  142. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/wizards.md +0 -0
  143. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/api-reference/workflows.md +0 -0
  144. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/examples/adaptive-learning-system.md +0 -0
  145. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/examples/generated-plan-release-prep.md +0 -0
  146. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/examples/multi-agent-team-coordination.md +0 -0
  147. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/examples/sbar-clinical-handoff.md +0 -0
  148. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/examples/simple-chatbot.md +0 -0
  149. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/examples/webhook-event-integration.md +0 -0
  150. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/getting-started/choose-your-path.md +0 -0
  151. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/getting-started/first-steps.md +0 -0
  152. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/getting-started/index.md +0 -0
  153. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/getting-started/installation.md +0 -0
  154. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/getting-started/mcp-integration.md +0 -0
  155. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/getting-started/redis-setup.md +0 -0
  156. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/DISTRIBUTION_POLICY.md +0 -0
  157. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +0 -0
  158. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/MKDOCS_TUTORIAL.md +0 -0
  159. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/PUBLISHING.md +0 -0
  160. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/RELEASE_PREPARATION.md +0 -0
  161. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/WORKFLOW_PATTERNS.md +0 -0
  162. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/claude-memory-integration.md +0 -0
  163. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/five-levels-of-empathy.md +0 -0
  164. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/foreword.md +0 -0
  165. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/healthcare-wizards.md +0 -0
  166. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/how-to-read-this-book.md +0 -0
  167. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/multi-model-workflows.md +0 -0
  168. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/pattern-catalog.md +0 -0
  169. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/preface.md +0 -0
  170. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/signoz-integration.md +0 -0
  171. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/teaching-ai-your-standards.md +0 -0
  172. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/trust-circuit-breaker.md +0 -0
  173. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/guides/xml-enhanced-prompts.md +0 -0
  174. {attune_ai-2.1.1 → attune_ai-2.1.3}/docs/index.md +0 -0
  175. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/README.md +0 -0
  176. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
  177. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
  178. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
  179. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/adaptive_routing_demo.py +0 -0
  180. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/adaptive_routing_workflow_demo.py +0 -0
  181. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/agent_coordination_demo.py +0 -0
  182. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/agent_tracking_demo.py +0 -0
  183. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/anthropic_patterns_demo.py +0 -0
  184. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/anthropic_patterns_simple_demo.py +0 -0
  185. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/approval_gates_demo.py +0 -0
  186. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/claude_memory/README-SECURITY.md +0 -0
  187. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
  188. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/claude_memory/example-with-imports.md +0 -0
  189. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/claude_memory/project-CLAUDE.md +0 -0
  190. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/claude_memory/user-CLAUDE.md +0 -0
  191. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/complete-workflow/README.md +0 -0
  192. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/complete-workflow/workflow_example.py +0 -0
  193. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/config/empathy.config.example.yml +0 -0
  194. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/coordinated_workflow_demo.py +0 -0
  195. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/dashboard_demo.py +0 -0
  196. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/demos/demo_end_to_end_workflow.py +0 -0
  197. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/demos/demo_memory_integration.py +0 -0
  198. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/demos/demo_meta_workflows.py +0 -0
  199. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/demos/demo_progressive_demo.py +0 -0
  200. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/demos/demo_security_complete.py +0 -0
  201. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/demos/demo_test_workflow.py +0 -0
  202. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
  203. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/domain_wizards/healthcare_example.py +0 -0
  204. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
  205. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/event_streaming_demo.py +0 -0
  206. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/feedback_loop_demo.py +0 -0
  207. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/hybrid_cli_demo.py +0 -0
  208. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/interactive_team_creation.py +0 -0
  209. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/level_5_transformative/BLOG_POST.md +0 -0
  210. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/level_5_transformative/README.md +0 -0
  211. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
  212. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
  213. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/llm_toolkit_demo.py +0 -0
  214. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/meta_orchestrator_demo.py +0 -0
  215. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/multi_llm_usage.py +0 -0
  216. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/orchestration/advanced_composition.py +0 -0
  217. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/orchestration/basic_usage.py +0 -0
  218. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/orchestration/custom_workflow.py +0 -0
  219. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/progressive_test_gen_demo.py +0 -0
  220. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/quickstart/README.md +0 -0
  221. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/quickstart.py +0 -0
  222. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/redis_exploration.py +0 -0
  223. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/scanner_usage.py +0 -0
  224. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/security_integration_example.py +0 -0
  225. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/README.md +0 -0
  226. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/SOCRATIC_DEMO.md +0 -0
  227. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/complete_demo.py +0 -0
  228. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/config.yaml +0 -0
  229. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/dashboard_demo.py +0 -0
  230. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/demo.py +0 -0
  231. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/live_demo.py +0 -0
  232. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/seo_agent.py +0 -0
  233. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/utils.py +0 -0
  234. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/seo_optimization/with_memory_backend.py +0 -0
  235. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/simple_usage.py +0 -0
  236. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/smart_team_quickstart.py +0 -0
  237. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/sonnet_opus_fallback_example.py +0 -0
  238. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/suggest_adaptive_routing.py +0 -0
  239. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/test_approval_gates.py +0 -0
  240. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/test_debugging_wizard.py +0 -0
  241. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/workflow_chaining_demo.py +0 -0
  242. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/workflows/README.md +0 -0
  243. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/workflows/code_review_example.py +0 -0
  244. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/workflows/doc_gen_example.py +0 -0
  245. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/workflows/multi_model_example.py +0 -0
  246. {attune_ai-2.1.1 → attune_ai-2.1.3}/examples/workflows/research_example.py +0 -0
  247. {attune_ai-2.1.1 → attune_ai-2.1.3}/requirements.txt +0 -0
  248. {attune_ai-2.1.1 → attune_ai-2.1.3}/setup.cfg +0 -0
  249. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/__init__.py +0 -0
  250. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/adaptive/__init__.py +0 -0
  251. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/adaptive/task_complexity.py +0 -0
  252. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/agent_monitoring.py +0 -0
  253. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache/__init__.py +0 -0
  254. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache/base.py +0 -0
  255. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache/dependency_manager.py +0 -0
  256. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache/hash_only.py +0 -0
  257. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache/hybrid.py +0 -0
  258. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache/storage.py +0 -0
  259. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache_monitor.py +0 -0
  260. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cache_stats.py +0 -0
  261. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/__init__.py +0 -0
  262. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/__main__.py +0 -0
  263. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/__init__.py +0 -0
  264. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/batch.py +0 -0
  265. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/cache.py +0 -0
  266. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/help.py +0 -0
  267. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/info.py +0 -0
  268. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/inspect.py +0 -0
  269. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/inspection.py +0 -0
  270. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/memory.py +0 -0
  271. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/metrics.py +0 -0
  272. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/orchestrate.py +0 -0
  273. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/patterns.py +0 -0
  274. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/profiling.py +0 -0
  275. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/provider.py +0 -0
  276. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/routing.py +0 -0
  277. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/setup.py +0 -0
  278. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/status.py +0 -0
  279. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/sync.py +0 -0
  280. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/tier.py +0 -0
  281. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/utilities.py +0 -0
  282. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/commands/workflow.py +0 -0
  283. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/core.py +0 -0
  284. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/__init__.py +0 -0
  285. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/batch.py +0 -0
  286. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/cache.py +0 -0
  287. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/help.py +0 -0
  288. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/info.py +0 -0
  289. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/inspect.py +0 -0
  290. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/metrics.py +0 -0
  291. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/orchestrate.py +0 -0
  292. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/patterns.py +0 -0
  293. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/provider.py +0 -0
  294. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/routing.py +0 -0
  295. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/setup.py +0 -0
  296. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/status.py +0 -0
  297. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/sync.py +0 -0
  298. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/tier.py +0 -0
  299. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/parsers/workflow.py +0 -0
  300. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/utils/__init__.py +0 -0
  301. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/utils/data.py +0 -0
  302. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli/utils/helpers.py +0 -0
  303. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli_legacy.py +0 -0
  304. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli_minimal.py +0 -0
  305. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli_router.py +0 -0
  306. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cli_unified.py +0 -0
  307. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/config/__init__.py +0 -0
  308. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/config/xml_config.py +0 -0
  309. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/config.py +0 -0
  310. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/coordination.py +0 -0
  311. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/core.py +0 -0
  312. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/core_modules/__init__.py +0 -0
  313. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/cost_tracker.py +0 -0
  314. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/dashboard/__init__.py +0 -0
  315. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/dashboard/app.py +0 -0
  316. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/dashboard/simple_server.py +0 -0
  317. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/dashboard/standalone_server.py +0 -0
  318. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/discovery.py +0 -0
  319. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/emergence.py +0 -0
  320. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/exceptions.py +0 -0
  321. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/feedback_loops.py +0 -0
  322. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/README.md +0 -0
  323. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/__init__.py +0 -0
  324. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/config.py +0 -0
  325. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/integration.py +0 -0
  326. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/reloader.py +0 -0
  327. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/watcher.py +0 -0
  328. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/hot_reload/websocket.py +0 -0
  329. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/levels.py +0 -0
  330. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/leverage_points.py +0 -0
  331. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/logging_config.py +0 -0
  332. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/mcp/__init__.py +0 -0
  333. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/mcp/server.py +0 -0
  334. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/__init__.py +0 -0
  335. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/claude_memory.py +0 -0
  336. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/config.py +0 -0
  337. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/control_panel.py +0 -0
  338. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/control_panel_support.py +0 -0
  339. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/cross_session.py +0 -0
  340. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/edges.py +0 -0
  341. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/encryption.py +0 -0
  342. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/file_session.py +0 -0
  343. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/graph.py +0 -0
  344. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/long_term.py +0 -0
  345. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/long_term_types.py +0 -0
  346. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/__init__.py +0 -0
  347. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/backend_init_mixin.py +0 -0
  348. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/capabilities_mixin.py +0 -0
  349. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/handoff_mixin.py +0 -0
  350. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/lifecycle_mixin.py +0 -0
  351. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/long_term_mixin.py +0 -0
  352. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/promotion_mixin.py +0 -0
  353. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/mixins/short_term_mixin.py +0 -0
  354. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/nodes.py +0 -0
  355. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/redis_bootstrap.py +0 -0
  356. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/security/__init__.py +0 -0
  357. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/security/audit_logger.py +0 -0
  358. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/security/pii_scrubber.py +0 -0
  359. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/security/secrets_detector.py +0 -0
  360. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/short_term.py +0 -0
  361. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/simple_storage.py +0 -0
  362. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/storage/__init__.py +0 -0
  363. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/storage_backend.py +0 -0
  364. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/summary_index.py +0 -0
  365. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/types.py +0 -0
  366. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/memory/unified.py +0 -0
  367. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/__init__.py +0 -0
  368. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/agent_creator.py +0 -0
  369. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/builtin_templates.py +0 -0
  370. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/__init__.py +0 -0
  371. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/agent_commands.py +0 -0
  372. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/analytics_commands.py +0 -0
  373. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/config_commands.py +0 -0
  374. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/memory_commands.py +0 -0
  375. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/template_commands.py +0 -0
  376. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_commands/workflow_commands.py +0 -0
  377. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/cli_meta_workflows.py +0 -0
  378. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/form_engine.py +0 -0
  379. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/intent_detector.py +0 -0
  380. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/models.py +0 -0
  381. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/pattern_learner.py +0 -0
  382. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/plan_generator.py +0 -0
  383. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/session_context.py +0 -0
  384. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/template_registry.py +0 -0
  385. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/meta_workflows/workflow.py +0 -0
  386. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/metrics/__init__.py +0 -0
  387. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/metrics/collector.py +0 -0
  388. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/metrics/prompt_metrics.py +0 -0
  389. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/__init__.py +0 -0
  390. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/__main__.py +0 -0
  391. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/adaptive_routing.py +0 -0
  392. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/auth_cli.py +0 -0
  393. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/auth_strategy.py +0 -0
  394. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/cli.py +0 -0
  395. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/empathy_executor.py +0 -0
  396. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/executor.py +0 -0
  397. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/fallback.py +0 -0
  398. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/provider_config.py +0 -0
  399. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/registry.py +0 -0
  400. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/tasks.py +0 -0
  401. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/telemetry/__init__.py +0 -0
  402. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/telemetry/analytics.py +0 -0
  403. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/telemetry/backend.py +0 -0
  404. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/telemetry/data_models.py +0 -0
  405. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/telemetry/storage.py +0 -0
  406. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/token_estimator.py +0 -0
  407. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/models/validation.py +0 -0
  408. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/monitoring/__init__.py +0 -0
  409. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/monitoring/alerts.py +0 -0
  410. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/monitoring/alerts_cli.py +0 -0
  411. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/monitoring/multi_backend.py +0 -0
  412. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/monitoring/otel_backend.py +0 -0
  413. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/optimization/__init__.py +0 -0
  414. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/optimization/context_optimizer.py +0 -0
  415. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/__init__.py +0 -0
  416. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/agent_templates.py +0 -0
  417. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/config_store.py +0 -0
  418. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/execution_strategies.py +0 -0
  419. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/meta_orchestrator.py +0 -0
  420. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/pattern_learner.py +0 -0
  421. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/orchestration/real_tools.py +0 -0
  422. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/pattern_cache.py +0 -0
  423. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/pattern_library.py +0 -0
  424. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/patterns/debugging/all_patterns.json +0 -0
  425. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/patterns/debugging/workflow_20260107_1770825e.json +0 -0
  426. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/patterns/refactoring_memory.json +0 -0
  427. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/persistence.py +0 -0
  428. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/platform_utils.py +0 -0
  429. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/plugins/__init__.py +0 -0
  430. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/plugins/base.py +0 -0
  431. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/plugins/registry.py +0 -0
  432. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/__init__.py +0 -0
  433. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/cli.py +0 -0
  434. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/index.py +0 -0
  435. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/models.py +0 -0
  436. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/reports.py +0 -0
  437. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/scanner.py +0 -0
  438. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/project_index/scanner_parallel.py +0 -0
  439. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/prompts/__init__.py +0 -0
  440. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/prompts/config.py +0 -0
  441. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/prompts/context.py +0 -0
  442. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/prompts/parser.py +0 -0
  443. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/prompts/registry.py +0 -0
  444. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/prompts/templates.py +0 -0
  445. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/redis_config.py +0 -0
  446. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/redis_memory.py +0 -0
  447. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/resilience/__init__.py +0 -0
  448. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/resilience/circuit_breaker.py +0 -0
  449. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/resilience/fallback.py +0 -0
  450. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/resilience/health.py +0 -0
  451. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/resilience/retry.py +0 -0
  452. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/resilience/timeout.py +0 -0
  453. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/routing/__init__.py +0 -0
  454. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/routing/chain_executor.py +0 -0
  455. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/routing/classifier.py +0 -0
  456. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/routing/smart_router.py +0 -0
  457. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/routing/workflow_registry.py +0 -0
  458. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/README.md +0 -0
  459. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/__init__.py +0 -0
  460. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/__main__.py +0 -0
  461. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/cli.py +0 -0
  462. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/templates/base_wizard.py.jinja2 +0 -0
  463. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/templates/coach_wizard.py.jinja2 +0 -0
  464. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/templates/domain_wizard.py.jinja2 +0 -0
  465. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/scaffolding/templates/linear_flow_wizard.py.jinja2 +0 -0
  466. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/__init__.py +0 -0
  467. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/ab_testing.py +0 -0
  468. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/blueprint.py +0 -0
  469. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/cli.py +0 -0
  470. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/collaboration.py +0 -0
  471. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/domain_templates.py +0 -0
  472. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/embeddings.py +0 -0
  473. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/engine.py +0 -0
  474. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/explainer.py +0 -0
  475. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/feedback.py +0 -0
  476. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/forms.py +0 -0
  477. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/generator.py +0 -0
  478. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/llm_analyzer.py +0 -0
  479. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/mcp_server.py +0 -0
  480. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/session.py +0 -0
  481. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/storage.py +0 -0
  482. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/success.py +0 -0
  483. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/visual_editor.py +0 -0
  484. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/socratic/web_ui.py +0 -0
  485. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/__init__.py +0 -0
  486. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/agent_coordination.py +0 -0
  487. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/agent_tracking.py +0 -0
  488. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/approval_gates.py +0 -0
  489. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/cli.py +0 -0
  490. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/commands/__init__.py +0 -0
  491. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/commands/dashboard_commands.py +0 -0
  492. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/event_streaming.py +0 -0
  493. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/feedback_loop.py +0 -0
  494. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/telemetry/usage_tracker.py +0 -0
  495. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/templates.py +0 -0
  496. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/test_generator/__init__.py +0 -0
  497. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/test_generator/__main__.py +0 -0
  498. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/test_generator/cli.py +0 -0
  499. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/test_generator/generator.py +0 -0
  500. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/test_generator/risk_analyzer.py +0 -0
  501. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/test_generator/templates/unit_test.py.jinja2 +0 -0
  502. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/tier_recommender.py +0 -0
  503. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/tools.py +0 -0
  504. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/trust/__init__.py +0 -0
  505. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/trust/circuit_breaker.py +0 -0
  506. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/trust_building.py +0 -0
  507. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/validation/__init__.py +0 -0
  508. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/validation/xml_validator.py +0 -0
  509. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_commands.py +0 -0
  510. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_patterns/__init__.py +0 -0
  511. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_patterns/behavior.py +0 -0
  512. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_patterns/core.py +0 -0
  513. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_patterns/output.py +0 -0
  514. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_patterns/registry.py +0 -0
  515. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflow_patterns/structural.py +0 -0
  516. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/__init__.py +0 -0
  517. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/autonomous_test_gen.py +0 -0
  518. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/base.py +0 -0
  519. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/batch_processing.py +0 -0
  520. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/bug_predict.py +0 -0
  521. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/builder.py +0 -0
  522. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/caching.py +0 -0
  523. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/code_review.py +0 -0
  524. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/code_review_adapters.py +0 -0
  525. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/code_review_pipeline.py +0 -0
  526. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/config.py +0 -0
  527. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/dependency_check.py +0 -0
  528. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/document_gen/__init__.py +0 -0
  529. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/document_gen/config.py +0 -0
  530. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/document_gen/report_formatter.py +0 -0
  531. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/document_gen/workflow.py +0 -0
  532. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/document_manager.py +0 -0
  533. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/document_manager_README.md +0 -0
  534. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/documentation_orchestrator.py +0 -0
  535. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/history.py +0 -0
  536. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/keyboard_shortcuts/__init__.py +0 -0
  537. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/keyboard_shortcuts/generators.py +0 -0
  538. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/keyboard_shortcuts/parsers.py +0 -0
  539. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/keyboard_shortcuts/prompts.py +0 -0
  540. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/keyboard_shortcuts/schema.py +0 -0
  541. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/keyboard_shortcuts/workflow.py +0 -0
  542. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/llm_base.py +0 -0
  543. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/manage_docs.py +0 -0
  544. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/manage_docs_README.md +0 -0
  545. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/manage_documentation.py +0 -0
  546. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/new_sample_workflow1.py +0 -0
  547. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/new_sample_workflow1_README.md +0 -0
  548. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/orchestrated_health_check.py +0 -0
  549. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/orchestrated_release_prep.py +0 -0
  550. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/output.py +0 -0
  551. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/perf_audit.py +0 -0
  552. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/pr_review.py +0 -0
  553. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progress.py +0 -0
  554. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progress_server.py +0 -0
  555. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/README.md +0 -0
  556. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/__init__.py +0 -0
  557. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/cli.py +0 -0
  558. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/core.py +0 -0
  559. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/orchestrator.py +0 -0
  560. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/reports.py +0 -0
  561. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/telemetry.py +0 -0
  562. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/test_gen.py +0 -0
  563. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/progressive/workflow.py +0 -0
  564. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/refactor_plan.py +0 -0
  565. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/release_prep.py +0 -0
  566. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/release_prep_crew.py +0 -0
  567. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/research_synthesis.py +0 -0
  568. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/routing.py +0 -0
  569. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/secure_release.py +0 -0
  570. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/security_adapters.py +0 -0
  571. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/security_audit.py +0 -0
  572. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/security_audit_phase3.py +0 -0
  573. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/seo_optimization.py +0 -0
  574. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/step_config.py +0 -0
  575. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/telemetry_mixin.py +0 -0
  576. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test5.py +0 -0
  577. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test5_README.md +0 -0
  578. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_coverage_boost_crew.py +0 -0
  579. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/__init__.py +0 -0
  580. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/ast_analyzer.py +0 -0
  581. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/config.py +0 -0
  582. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/data_models.py +0 -0
  583. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/report_formatter.py +0 -0
  584. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/test_templates.py +0 -0
  585. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen/workflow.py +0 -0
  586. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen.py +0 -0
  587. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen_behavioral.py +0 -0
  588. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_gen_parallel.py +0 -0
  589. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_lifecycle.py +0 -0
  590. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_maintenance.py +0 -0
  591. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_maintenance_cli.py +0 -0
  592. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_maintenance_crew.py +0 -0
  593. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/test_runner.py +0 -0
  594. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/tier_tracking.py +0 -0
  595. {attune_ai-2.1.1 → attune_ai-2.1.3}/src/attune/workflows/xml_enhanced_crew.py +0 -0
  596. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_agent_factory.py +0 -0
  597. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_agent_factory_memory.py +0 -0
  598. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_agent_factory_resilience.py +0 -0
  599. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_audit_logger.py +0 -0
  600. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_audit_logger_extended.py +0 -0
  601. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_base.py +0 -0
  602. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_baseline.py +0 -0
  603. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_book_production_agents.py +0 -0
  604. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_bug_predict_workflow.py +0 -0
  605. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_claude_memory.py +0 -0
  606. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_claude_memory_extended.py +0 -0
  607. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_clinical_protocol_monitor.py +0 -0
  608. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_code_health.py +0 -0
  609. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_code_review.py +0 -0
  610. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_code_review_crew_integration.py +0 -0
  611. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_code_review_pipeline.py +0 -0
  612. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_code_review_pipeline_workflow.py +0 -0
  613. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_code_review_workflow.py +0 -0
  614. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_config.py +0 -0
  615. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_control_panel.py +0 -0
  616. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_control_panel_security.py +0 -0
  617. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_coordination.py +0 -0
  618. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_core.py +0 -0
  619. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_core_reliability.py +0 -0
  620. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_cost_tracker.py +0 -0
  621. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_dependency_check.py +0 -0
  622. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_dependency_check_workflow.py +0 -0
  623. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_discovery.py +0 -0
  624. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_document_gen.py +0 -0
  625. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_document_gen_workflow.py +0 -0
  626. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_emergence.py +0 -0
  627. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_empathy_llm_core.py +0 -0
  628. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_empathy_llm_security.py +0 -0
  629. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_empathy_os.py +0 -0
  630. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_exceptions.py +0 -0
  631. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_executor_integration.py +0 -0
  632. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_fallback.py +0 -0
  633. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_fallback_suite.py +0 -0
  634. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_feedback_loops.py +0 -0
  635. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_finding_extraction.py +0 -0
  636. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_graph.py +0 -0
  637. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_health_check.py +0 -0
  638. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_healthcare_plugin.py +0 -0
  639. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_intelligence_integration.py +0 -0
  640. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_levels.py +0 -0
  641. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_leverage_points.py +0 -0
  642. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_integration.py +0 -0
  643. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_agents.py +0 -0
  644. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_core.py +0 -0
  645. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_decorators.py +0 -0
  646. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_empathy_core.py +0 -0
  647. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_langgraph_adapter.py +0 -0
  648. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_levels.py +0 -0
  649. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_memory.py +0 -0
  650. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_patterns.py +0 -0
  651. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_providers.py +0 -0
  652. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_security.py +0 -0
  653. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_session_status.py +0 -0
  654. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_llm_toolkit_wizard_adapter.py +0 -0
  655. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_logging_config.py +0 -0
  656. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_long_term.py +0 -0
  657. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_memory_graph.py +0 -0
  658. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_model_registry.py +0 -0
  659. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_model_router.py +0 -0
  660. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_monitoring.py +0 -0
  661. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_pattern_cache.py +0 -0
  662. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_pattern_library.py +0 -0
  663. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_perf_audit_workflow.py +0 -0
  664. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_persistence.py +0 -0
  665. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_pii_scrubber.py +0 -0
  666. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_pii_scrubber_extended.py +0 -0
  667. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_platform_compat_ci.py +0 -0
  668. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_platform_utils.py +0 -0
  669. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_plugin_base.py +0 -0
  670. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_plugin_registry.py +0 -0
  671. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_pr_review.py +0 -0
  672. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_pr_review_workflow.py +0 -0
  673. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_production_smoke.py +0 -0
  674. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_progress.py +0 -0
  675. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_protocol_checker.py +0 -0
  676. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_protocol_loader.py +0 -0
  677. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_provider_config.py +0 -0
  678. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_providers.py +0 -0
  679. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_redis_bootstrap.py +0 -0
  680. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_redis_config.py +0 -0
  681. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_redis_integration.py +0 -0
  682. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_redis_memory.py +0 -0
  683. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_redis_memory_errors.py +0 -0
  684. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_refactor_golden.py +0 -0
  685. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_refactor_plan_workflow.py +0 -0
  686. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_refactoring.py +0 -0
  687. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_refactoring_crew.py +0 -0
  688. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_registry.py +0 -0
  689. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_release_prep.py +0 -0
  690. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_reporting.py +0 -0
  691. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_reports.py +0 -0
  692. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_resilience.py +0 -0
  693. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_sbar_wizard.py +0 -0
  694. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_scanner.py +0 -0
  695. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_scanner_exceptions.py +0 -0
  696. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_secrets_detector.py +0 -0
  697. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_secure_memdocs.py +0 -0
  698. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_secure_memdocs_extended.py +0 -0
  699. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_secure_release.py +0 -0
  700. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_secure_release_workflow.py +0 -0
  701. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_audit.py +0 -0
  702. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_audit_crew.py +0 -0
  703. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_audit_workflow.py +0 -0
  704. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_crew_integration.py +0 -0
  705. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_integration.py +0 -0
  706. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_negative_cases.py +0 -0
  707. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_security_scan.py +0 -0
  708. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_sensor_parsers.py +0 -0
  709. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_session_status.py +0 -0
  710. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_short_term.py +0 -0
  711. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_smart_router.py +0 -0
  712. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_smoke.py +0 -0
  713. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_sonnet_opus_fallback.py +0 -0
  714. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_state.py +0 -0
  715. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_step_config.py +0 -0
  716. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_summary_index.py +0 -0
  717. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_sync_claude.py +0 -0
  718. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_tech_debt_wizard.py +0 -0
  719. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_telemetry.py +0 -0
  720. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_templates.py +0 -0
  721. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_timeout.py +0 -0
  722. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_token_estimator.py +0 -0
  723. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_trajectory_analyzer.py +0 -0
  724. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_trust_building.py +0 -0
  725. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_trust_circuit_breaker.py +0 -0
  726. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_unified_memory.py +0 -0
  727. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_validation.py +0 -0
  728. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_wizard_outputs.py +0 -0
  729. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_wizard_site_comprehensive.py +0 -0
  730. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_workflow_base.py +0 -0
  731. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_workflow_commands.py +0 -0
  732. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_workflow_wizard_integration.py +0 -0
  733. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_xml_prompts.py +0 -0
  734. {attune_ai-2.1.1 → attune_ai-2.1.3}/tests/test_xml_spec_generation.py +0 -0
  735. {attune_ai-2.1.1 → attune_ai-2.1.3}/workflow_scaffolding/__init__.py +0 -0
  736. {attune_ai-2.1.1 → attune_ai-2.1.3}/workflow_scaffolding/__main__.py +0 -0
  737. {attune_ai-2.1.1 → attune_ai-2.1.3}/workflow_scaffolding/cli.py +0 -0
  738. {attune_ai-2.1.1 → attune_ai-2.1.3}/workflow_scaffolding/generator.py +0 -0
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.1.3] - 2026-02-02
11
+
12
+ ### Changed
13
+
14
+ - **README rebrand**: Complete rewrite from "Empathy Framework" to "Attune AI" branding
15
+ - **Cleaner documentation**: Streamlined README focusing on key features without legacy version history
16
+
17
+ ## [2.1.2] - 2026-02-02
18
+
19
+ ### Fixed
20
+
21
+ - **PyPI packaging**: Re-release to include `.attune` branding fix (2.1.1 was built before the fix was merged)
22
+
23
+ ## [2.1.1] - 2026-02-02
24
+
25
+ ### Fixed
26
+
27
+ - **vscode_bridge.py**: Updated `get_empathy_dir()` to use `.attune` directory (completes branding migration from `.empathy`)
28
+ - **test_vscode_bridge_coverage_boost.py**: Aligned test expectations with `.attune` directory naming
29
+
10
30
  ## [2.1.0] - 2026-02-01
11
31
 
12
32
  ### 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.3
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,11 +421,11 @@ 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
+ # Attune AI
425
425
 
426
- **AI-powered developer workflows with Socratic discovery.**
426
+ **AI-powered developer workflows with cost optimization and intelligent routing.**
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)
@@ -438,26 +438,38 @@ pip install attune-ai[developer]
438
438
 
439
439
  ---
440
440
 
441
- ## What's New in v2.1.0
441
+ ## Key Features
442
442
 
443
- **🎯 Unified `/attune` Command** - One entry point for all workflows:
443
+ ### Claude-Native Architecture
444
444
 
445
- ```bash
446
- /attune # Start Socratic discovery
447
- /attune "fix a bug" # Natural language
448
- /attune debug # Direct shortcut
449
- ```
445
+ Attune AI is built exclusively for Anthropic/Claude, unlocking features impossible with multi-provider abstraction:
446
+
447
+ - **Prompt Caching** - 90% cost reduction on repeated prompts
448
+ - **Flexible Context** - 200K via subscription, up to 1M via API for large codebases
449
+ - **Extended Thinking** - Access Claude's internal reasoning process
450
+ - **Advanced Tool Use** - Optimized for agentic workflows
451
+
452
+ ### Multi-Agent Orchestration
453
+
454
+ Full support for custom agents and Anthropic LLM agents:
450
455
 
451
- **Socratic Discovery** - Ask what you're trying to accomplish, not which tool to use:
456
+ - **Agent Coordination Dashboard** - Real-time monitoring with 6 coordination patterns
457
+ - **Custom Agents** - Build specialized agents for your workflow needs
458
+ - **Inter-Agent Communication** - Heartbeats, signals, events, and approval gates
452
459
 
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
460
+ ### Intelligent Cost Optimization
457
461
 
458
- **Performance Audit Improvements** - Removed false positive detection for intentional patterns like `dirs[:]` and defensive list copies.
462
+ - **$0 in Claude Code** - Workflows run as skills through Claude's Task tool
463
+ - **Smart Tier Routing** - Automatically selects the right model for each task
464
+ - **Authentication Strategy** - Routes between subscription and API based on codebase size
459
465
 
460
- [See Full Changelog](CHANGELOG.md)
466
+ ### Socratic Workflows
467
+
468
+ Workflows guide you through discovery instead of requiring upfront configuration:
469
+
470
+ - **Interactive Discovery** - Asks targeted questions to understand your needs
471
+ - **Context Gathering** - Collects relevant code, errors, and constraints
472
+ - **Dynamic Agent Creation** - Assembles the right team based on your answers
461
473
 
462
474
  ---
463
475
 
@@ -475,74 +487,31 @@ pip install attune-ai[developer]
475
487
  # Auto-detect API keys
476
488
  python -m attune.models.cli provider
477
489
 
478
- # Or set explicitly
479
- python -m attune.models.cli provider --set anthropic
490
+ # Or configure authentication strategy
491
+ python -m attune.models.auth_cli setup
480
492
  ```
481
493
 
482
- ### 3. Use
483
-
484
- **In Claude Code:**
494
+ ### 3. Use in Claude Code
485
495
 
486
496
  ```bash
487
497
  /dev # Developer tools (debug, commit, PR, review)
488
- /testing # Run tests, coverage, benchmarks
498
+ /testing # Run tests, coverage analysis, benchmarks
489
499
  /workflows # Automated analysis (security, bugs, perf)
490
- /plan # Planning, TDD, code review
500
+ /plan # Planning, TDD, code review, refactoring
491
501
  /docs # Documentation generation
492
502
  /release # Release preparation
493
503
 
494
504
  # Natural language support:
495
505
  /workflows "find security issues"
496
506
  /plan "review my code"
497
-
498
- # Direct tool access via MCP (v5.1.1+):
499
- # Claude Code automatically discovers Empathy tools through the MCP server
500
- # Just describe what you need in natural language:
501
- "Run a security audit on src/" → Invokes security_audit tool
502
- "Generate tests for config.py" → Invokes test_generation tool
503
- "Check my auth configuration" → Invokes auth_status tool
504
- "Analyze performance bottlenecks" → Invokes performance_audit tool
505
507
  ```
506
508
 
507
- **MCP Server Integration (v5.1.1+):**
508
-
509
- Empathy Framework now includes a Model Context Protocol (MCP) server that exposes all workflows as native Claude Code tools:
510
-
511
- - **10 Tools Available:** security_audit, bug_predict, code_review, test_generation, performance_audit, release_prep, auth_status, auth_recommend, telemetry_stats, dashboard_status
512
- - **Automatic Discovery:** No manual configuration needed - Claude Code finds tools via `.claude/mcp.json`
513
- - **Natural Language Access:** Describe your need and Claude invokes the appropriate tool
514
- - **Verification Hooks:** Automatic validation of Python/JSON files and workflow outputs
515
-
516
- To verify MCP integration:
509
+ ### 4. Use via CLI
517
510
 
518
511
  ```bash
519
- # Check server is running
520
- echo '{"method":"tools/list","params":{}}' | PYTHONPATH=./src python -m attune.mcp.server
521
-
522
- # Restart Claude Code to load the MCP server
523
- # Tools will appear in Claude's tool list automatically
524
- ```
525
-
526
- See [.claude/MCP_TEST_RESULTS.md](.claude/MCP_TEST_RESULTS.md) for full integration details.
527
-
528
- **CLI:**
529
-
530
- ```bash
531
- empathy workflow run security-audit --path ./src
532
- empathy workflow run test-coverage --target 90
533
- empathy telemetry show # View cost savings
534
- ```
535
-
536
- **Python:**
537
-
538
- ```python
539
- from attune import EmpathyOS
540
-
541
- async with EmpathyOS() as empathy:
542
- result = await empathy.level_2_guided(
543
- "Review this code for security issues"
544
- )
545
- print(result["response"])
512
+ attune workflow run security-audit --path ./src
513
+ attune workflow run test-coverage --target 90
514
+ attune telemetry show # View cost savings
546
515
  ```
547
516
 
548
517
  ---
@@ -559,67 +528,14 @@ Workflows are organized into hubs for easy discovery:
559
528
  | **Release** | `/release` | Release prep, security scan, publishing |
560
529
  | **Workflows** | `/workflows` | Automated analysis (security, bugs, perf) |
561
530
  | **Plan** | `/plan` | Planning, TDD, code review, refactoring |
562
- | **Utilities** | `/utilities` | Project init, dependencies, profiling |
563
- | **Learning** | `/learning` | Pattern learning and session evaluation |
564
- | **Context** | `/context` | State management and memory |
565
531
  | **Agent** | `/agent` | Create and manage custom agents |
566
532
 
567
- **Natural Language Support:**
533
+ **Natural Language Routing:**
568
534
 
569
535
  ```bash
570
- # Use plain English - intelligent routing matches your intent
571
536
  /workflows "find security vulnerabilities" # → security-audit
572
537
  /workflows "check code performance" # → perf-audit
573
- /workflows "predict bugs" # → bug-predict
574
538
  /plan "review my code" # → code-review
575
- /plan "help me plan this feature" # → planning
576
-
577
- # Or use traditional workflow names
578
- /workflows security-audit
579
- /plan code-review
580
- ```
581
-
582
- **Interactive menus:**
583
-
584
- ```bash
585
- /dev # Show interactive menu
586
- /dev "debug auth error" # Jump directly to debugging
587
- /testing "run coverage" # Run coverage analysis
588
- /release # Start release preparation
589
- ```
590
-
591
- ---
592
-
593
- ## Socratic Method
594
-
595
- Workflows guide you through discovery instead of requiring upfront configuration:
596
-
597
- ```text
598
- You: /dev
599
-
600
- Claude: What development task do you need?
601
- 1. Debug issue
602
- 2. Create commit
603
- 3. PR workflow
604
- 4. Quality check
605
-
606
- You: 1
607
-
608
- Claude: What error or unexpected behavior are you seeing?
609
- ```
610
-
611
- **How it works:**
612
-
613
- 1. **Discovery** - Workflow asks targeted questions to understand your needs
614
- 2. **Context gathering** - Collects relevant code, errors, and constraints
615
- 3. **Dynamic agent creation** - Assembles the right team based on your answers
616
- 4. **Execution** - Runs with appropriate tier selection
617
-
618
- **Create custom agents with Socratic guidance:**
619
-
620
- ```bash
621
- /agent create # Guided agent creation
622
- /agent team # Build multi-agent teams interactively
623
539
  ```
624
540
 
625
541
  ---
@@ -634,120 +550,93 @@ When using Claude Code, workflows run as skills through the Task tool - **no API
634
550
  /dev # $0 - uses your Claude subscription
635
551
  /testing # $0
636
552
  /release # $0
637
- /agent create # $0
638
553
  ```
639
554
 
640
555
  ### API Mode (CI/CD, Automation)
641
556
 
642
557
  For programmatic use, smart tier routing saves 34-86%:
643
558
 
644
- | Tier | Model | Use Case | Cost |
645
- | ------- | ------------------- | --------------------------- | ----------- |
646
- | CHEAP | Haiku / GPT-4o-mini | Formatting, simple tasks | ~$0.005 |
647
- | CAPABLE | Sonnet / GPT-4o | Bug fixes, code review | ~$0.08 |
648
- | PREMIUM | Opus / o1 | Architecture, complex design | ~$0.45 |
559
+ | Tier | Model | Use Case | Cost |
560
+ | ------- | ------------- | ---------------------------- | ------- |
561
+ | CHEAP | Haiku | Formatting, simple tasks | ~$0.005 |
562
+ | CAPABLE | Sonnet | Bug fixes, code review | ~$0.08 |
563
+ | PREMIUM | Opus | Architecture, complex design | ~$0.45 |
649
564
 
650
565
  ```bash
651
566
  # Track API usage and savings
652
- empathy telemetry savings --days 30
567
+ attune telemetry savings --days 30
653
568
  ```
654
569
 
655
570
  ---
656
571
 
657
- ## Key Features
658
-
659
- ### Multi-Agent Workflows
660
-
661
- ```bash
662
- # 4 parallel agents check release readiness
663
- empathy orchestrate release-prep
664
-
665
- # Sequential coverage improvement
666
- empathy orchestrate test-coverage --target 90
667
- ```
572
+ ## MCP Server Integration
668
573
 
669
- ### Response Caching
574
+ Attune AI includes a Model Context Protocol (MCP) server that exposes all workflows as native Claude Code tools:
670
575
 
671
- Up to 57% cache hit rate on similar prompts. Zero config needed.
576
+ - **10 Tools Available** - security_audit, bug_predict, code_review, test_generation, performance_audit, release_prep, and more
577
+ - **Automatic Discovery** - Claude Code finds tools via `.claude/mcp.json`
578
+ - **Natural Language Access** - Describe your need and Claude invokes the appropriate tool
672
579
 
673
- ```python
674
- from attune.workflows import SecurityAuditWorkflow
675
-
676
- workflow = SecurityAuditWorkflow(enable_cache=True)
677
- result = await workflow.execute(target_path="./src")
678
- print(f"Cache hit rate: {result.cost_report.cache_hit_rate:.1f}%")
580
+ ```bash
581
+ # Verify MCP integration
582
+ echo '{"method":"tools/list","params":{}}' | PYTHONPATH=./src python -m attune.mcp.server
679
583
  ```
680
584
 
681
- ### Pattern Learning
682
-
683
- Workflows learn from outcomes and improve over time:
585
+ ---
684
586
 
685
- ```python
686
- from attune.orchestration.config_store import ConfigurationStore
587
+ ## Agent Coordination Dashboard
687
588
 
688
- store = ConfigurationStore()
689
- best = store.get_best_for_task("release_prep")
690
- print(f"Success rate: {best.success_rate:.1%}")
691
- ```
589
+ Real-time monitoring with 6 coordination patterns:
692
590
 
693
- ### Multi-Provider Support
591
+ - Agent heartbeats and status tracking
592
+ - Inter-agent coordination signals
593
+ - Event streaming across agent workflows
594
+ - Approval gates for human-in-the-loop
595
+ - Quality feedback and performance metrics
596
+ - Demo mode with test data generation
694
597
 
695
- ```python
696
- from attune_llm.providers import (
697
- AnthropicProvider, # Claude
698
- OpenAIProvider, # GPT-4
699
- GeminiProvider, # Gemini
700
- LocalProvider, # Ollama, LM Studio
701
- )
598
+ ```bash
599
+ # Launch dashboard (requires Redis)
600
+ python examples/dashboard_demo.py
601
+ # Open http://localhost:8000
702
602
  ```
703
603
 
704
604
  ---
705
605
 
706
- ## CLI Reference
606
+ ## Authentication Strategy
607
+
608
+ Intelligent routing between Claude subscription and Anthropic API:
707
609
 
708
610
  ```bash
709
- # Provider configuration
710
- python -m attune.models.cli provider
711
- python -m attune.models.cli provider --set hybrid
611
+ # Interactive setup
612
+ python -m attune.models.auth_cli setup
712
613
 
713
- # Workflows
714
- empathy workflow list
715
- empathy workflow run <workflow-name>
614
+ # View current configuration
615
+ python -m attune.models.auth_cli status
716
616
 
717
- # Cost tracking
718
- empathy telemetry show
719
- empathy telemetry savings --days 30
720
- empathy telemetry export --format csv
617
+ # Get recommendation for a file
618
+ python -m attune.models.auth_cli recommend src/module.py
619
+ ```
721
620
 
722
- # Orchestration
723
- empathy orchestrate release-prep
724
- empathy orchestrate test-coverage --target 90
621
+ **Automatic routing:**
725
622
 
726
- # Meta-workflows
727
- empathy meta-workflow list
728
- empathy meta-workflow run release-prep --real
729
- ```
623
+ - Small/medium modules (<2000 LOC) → Claude subscription (free)
624
+ - Large modules (>2000 LOC) → Anthropic API (pay for what you need)
730
625
 
731
626
  ---
732
627
 
733
- ## Install Options
628
+ ## Installation Options
734
629
 
735
630
  ```bash
736
631
  # Individual developers (recommended)
737
632
  pip install attune-ai[developer]
738
633
 
739
- # All LLM providers
740
- pip install attune-ai[llm]
741
-
742
634
  # With caching (semantic similarity)
743
635
  pip install attune-ai[cache]
744
636
 
745
637
  # Enterprise (auth, rate limiting)
746
638
  pip install attune-ai[enterprise]
747
639
 
748
- # Healthcare (HIPAA compliance)
749
- pip install attune-ai[healthcare]
750
-
751
640
  # Development
752
641
  git clone https://github.com/Smart-AI-Memory/attune-ai.git
753
642
  cd attune-ai && pip install -e .[dev]
@@ -758,74 +647,38 @@ cd attune-ai && pip install -e .[dev]
758
647
  ## Environment Setup
759
648
 
760
649
  ```bash
761
- # At least one provider required
650
+ # Required: Anthropic API key
762
651
  export ANTHROPIC_API_KEY="sk-ant-..."
763
- export OPENAI_API_KEY="sk-..."
764
- export GOOGLE_API_KEY="..."
765
652
 
766
- # Optional (but required for Agent Dashboard): Redis for memory
653
+ # Optional: Redis for Agent Dashboard and memory
767
654
  export REDIS_URL="redis://localhost:6379"
768
655
  ```
769
656
 
770
657
  ---
771
658
 
772
- ## VSCode Extension
773
-
774
- Install the Empathy VSCode extension for:
775
-
776
- - **Dashboard** - Health score, costs, patterns
777
- - **One-Click Workflows** - Run from command palette
778
- - **Memory Panel** - Manage Redis and patterns
779
- - **Cost Tracking** - Real-time savings display
780
-
781
- ---
782
-
783
- ## Documentation
784
-
785
- - [Quick Start Guide](docs/quickstart.md)
786
- - [CLI Reference](docs/cli-reference.md)
787
- - [Testing Guide](docs/testing-guide.md)
788
- - [Keyboard Shortcuts](docs/keyboard-shortcuts.md)
789
- - [Full Documentation](https://smartaimemory.com/framework-docs/)
790
-
791
- ---
792
-
793
659
  ## Security
794
660
 
795
661
  - Path traversal protection on all file operations
796
662
  - JWT authentication with rate limiting
797
663
  - PII scrubbing in telemetry
798
664
  - HIPAA/GDPR compliance options
799
- - **Automated security scanning** with 82% accuracy (Phase 3 AST-based detection)
800
-
801
- See [SECURITY.md](SECURITY.md) for vulnerability reporting.
802
-
803
- ### Security Scanning
804
-
805
- **Automated security scanning in CI/CD** - 82% accuracy, blocks critical issues:
665
+ - Automated security scanning with 82% accuracy
806
666
 
807
667
  ```bash
808
- # Run security audit locally
809
- empathy workflow run security-audit
810
-
811
- # Scan specific directory
812
- empathy workflow run security-audit --input '{"path":"./src"}'
668
+ # Run security audit
669
+ attune workflow run security-audit --path ./src
813
670
  ```
814
671
 
815
- **Documentation:**
672
+ See [SECURITY.md](SECURITY.md) for vulnerability reporting.
816
673
 
817
- - **[Developer Workflow Guide](docs/DEVELOPER_SECURITY_WORKFLOW.md)** - Quick reference for handling security findings (all developers)
818
- - **[CI/CD Integration Guide](docs/CI_SECURITY_SCANNING.md)** - Complete setup and troubleshooting (DevOps, developers)
819
- - **[Scanner Architecture](docs/SECURITY_SCANNER_ARCHITECTURE.md)** - Technical implementation details (engineers, architects)
820
- - **[Remediation Process](docs/SECURITY_REMEDIATION_PROCESS.md)** - 3-phase methodology for improving scanners (security teams, leadership)
821
- - **[API Reference](docs/api-reference/security-scanner.md)** - Complete API documentation (developers extending scanner)
674
+ ---
822
675
 
823
- **Key achievements:**
676
+ ## Documentation
824
677
 
825
- - 82.3% reduction in false positives (350 → 62 findings)
826
- - 16x improvement in scanner accuracy
827
- - <15 minute average fix time for critical issues
828
- - Zero critical vulnerabilities in production code
678
+ - [Quick Start Guide](docs/quickstart.md)
679
+ - [CLI Reference](docs/cli-reference.md)
680
+ - [Authentication Strategy Guide](docs/AUTH_STRATEGY_GUIDE.md)
681
+ - [Full Documentation](https://smartaimemory.com/framework-docs/)
829
682
 
830
683
  ---
831
684
 
@@ -837,27 +690,20 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
837
690
 
838
691
  ## License
839
692
 
840
- **Apache License 2.0** - Free and open source for everyone. Use it, modify it, build commercial products with it. [Details →](LICENSE)
693
+ **Apache License 2.0** - Free and open source. Use it, modify it, build commercial products with it. [Details →](LICENSE)
841
694
 
842
695
  ---
843
696
 
844
697
  ## Acknowledgements
845
698
 
846
- This project stands on the shoulders of giants. We are deeply grateful to the open source community and all the amazing projects that make this framework possible.
847
-
848
- **[View Full Acknowledgements →](ACKNOWLEDGEMENTS.md)**
849
-
850
699
  Special thanks to:
851
700
 
852
701
  - **[Anthropic](https://www.anthropic.com/)** - For Claude AI and the Model Context Protocol
853
- - **[LangChain](https://github.com/langchain-ai/langchain)** - Agent framework powering our meta-orchestration
702
+ - **[LangChain](https://github.com/langchain-ai/langchain)** - Agent framework powering our orchestration
854
703
  - **[FastAPI](https://github.com/tiangolo/fastapi)** - Modern Python web framework
855
- - **[pytest](https://github.com/pytest-dev/pytest)** - Testing framework making quality assurance effortless
856
-
857
- And to all 50+ open source projects we depend on. [See the complete list →](ACKNOWLEDGEMENTS.md)
858
704
 
859
- Want to contribute? See [CONTRIBUTORS.md](CONTRIBUTORS.md)
705
+ [View Full Acknowledgements ](ACKNOWLEDGEMENTS.md)
860
706
 
861
707
  ---
862
708
 
863
- **Built by [Smart AI Memory](https://smartaimemory.com)** · [Docs](https://smartaimemory.com/framework-docs/) · [Examples](examples/) · [Issues](https://github.com/Smart-AI-Memory/attune-ai/issues)
709
+ **Built by [Smart AI Memory](https://smartaimemory.com)** · [Docs](https://smartaimemory.com/framework-docs/) · [Issues](https://github.com/Smart-AI-Memory/attune-ai/issues)