attune-ai 2.0.1__tar.gz → 2.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. {attune_ai-2.0.1 → attune_ai-2.1.0}/CHANGELOG.md +8 -17
  2. {attune_ai-2.0.1 → attune_ai-2.1.0}/CONTRIBUTING.md +29 -25
  3. {attune_ai-2.0.1 → attune_ai-2.1.0}/PKG-INFO +169 -64
  4. {attune_ai-2.0.1 → attune_ai-2.1.0}/README.md +168 -63
  5. {attune_ai-2.0.1 → attune_ai-2.1.0}/SECURITY.md +4 -5
  6. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_ai.egg-info/PKG-INFO +169 -64
  7. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_ai.egg-info/SOURCES.txt +0 -19
  8. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/README.md +3 -3
  9. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/config.md +3 -3
  10. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/core.md +2 -2
  11. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/empathy-os.md +2 -2
  12. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/index.md +3 -3
  13. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/security-scanner.md +1 -1
  14. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/wizards.md +1 -1
  15. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/examples/adaptive-learning-system.md +1 -1
  16. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/examples/generated-plan-release-prep.md +2 -2
  17. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/examples/sbar-clinical-handoff.md +3 -3
  18. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/examples/simple-chatbot.md +1 -1
  19. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/examples/webhook-event-integration.md +6 -6
  20. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/getting-started/choose-your-path.md +2 -2
  21. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/getting-started/first-steps.md +2 -2
  22. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/getting-started/index.md +4 -4
  23. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/getting-started/installation.md +3 -3
  24. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/getting-started/mcp-integration.md +5 -5
  25. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/getting-started/redis-setup.md +2 -2
  26. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/DISTRIBUTION_POLICY.md +1 -1
  27. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/MCP_PUBLISH_INSTRUCTIONS.md +1 -1
  28. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/MKDOCS_TUTORIAL.md +13 -13
  29. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/RELEASE_PREPARATION.md +4 -4
  30. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/WORKFLOW_PATTERNS.md +2 -2
  31. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/claude-memory-integration.md +2 -2
  32. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/five-levels-of-empathy.md +10 -10
  33. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/foreword.md +2 -2
  34. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/how-to-read-this-book.md +1 -1
  35. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/pattern-catalog.md +2 -2
  36. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/preface.md +1 -1
  37. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/signoz-integration.md +10 -10
  38. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/teaching-ai-your-standards.md +4 -4
  39. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/xml-enhanced-prompts.md +5 -5
  40. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/index.md +4 -4
  41. {attune_ai-2.0.1 → attune_ai-2.1.0}/pyproject.toml +1 -1
  42. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/perf_audit.py +11 -15
  43. attune_ai-2.0.1/docs/api-reference/memory 2.md +0 -305
  44. attune_ai-2.0.1/docs/api-reference/security-scanner 2.md +0 -859
  45. attune_ai-2.0.1/docs/api-reference/workflows 2.md +0 -406
  46. attune_ai-2.0.1/docs/getting-started/installation 2.md +0 -175
  47. attune_ai-2.0.1/docs/getting-started/mcp-integration 2.md +0 -140
  48. attune_ai-2.0.1/examples/adaptive_routing_workflow_demo 2.py +0 -157
  49. attune_ai-2.0.1/examples/agent_coordination_demo 2.py +0 -234
  50. attune_ai-2.0.1/examples/agent_tracking_demo 2.py +0 -169
  51. attune_ai-2.0.1/examples/approval_gates_demo 2.py +0 -365
  52. attune_ai-2.0.1/examples/coordinated_workflow_demo 2.py +0 -363
  53. attune_ai-2.0.1/examples/dashboard_demo 2.py +0 -227
  54. attune_ai-2.0.1/examples/event_streaming_demo 2.py +0 -318
  55. attune_ai-2.0.1/examples/feedback_loop_demo 2.py +0 -382
  56. attune_ai-2.0.1/examples/scanner_usage 2.py +0 -277
  57. attune_ai-2.0.1/examples/suggest_adaptive_routing 2.py +0 -153
  58. attune_ai-2.0.1/examples/test_approval_gates 2.py +0 -121
  59. attune_ai-2.0.1/examples/workflow_chaining_demo 2.py +0 -254
  60. attune_ai-2.0.1/src/.empathy/discovery_stats.json +0 -15
  61. attune_ai-2.0.1/src/attune/workflows/progressive/README 2.md +0 -454
  62. {attune_ai-2.0.1 → attune_ai-2.1.0}/.bandit +0 -0
  63. {attune_ai-2.0.1 → attune_ai-2.1.0}/CODE_OF_CONDUCT.md +0 -0
  64. {attune_ai-2.0.1 → attune_ai-2.1.0}/LICENSE +0 -0
  65. {attune_ai-2.0.1 → attune_ai-2.1.0}/LICENSE_CHANGE_ANNOUNCEMENT.md +0 -0
  66. {attune_ai-2.0.1 → attune_ai-2.1.0}/MANIFEST.in +0 -0
  67. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_B112.json +0 -0
  68. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_F541.json +0 -0
  69. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_FORMAT.json +0 -0
  70. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_20250822_def456.json +0 -0
  71. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_20250915_abc123.json +0 -0
  72. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_3c5b9951.json +0 -0
  73. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_97c0f72f.json +0 -0
  74. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a0871d53.json +0 -0
  75. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_20251212_a9b6ec41.json +0 -0
  76. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_bug_null_001.json +0 -0
  77. {attune_ai-2.0.1 → attune_ai-2.1.0}/agents/code_inspection/patterns/inspection/recurring_builtin.json +0 -0
  78. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_ai.egg-info/dependency_links.txt +0 -0
  79. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_ai.egg-info/entry_points.txt +0 -0
  80. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_ai.egg-info/requires.txt +0 -0
  81. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_ai.egg-info/top_level.txt +0 -0
  82. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/__init__.py +0 -0
  83. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/__init__.py +0 -0
  84. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/clinical_protocol_monitor.py +0 -0
  85. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/monitoring/__init__.py +0 -0
  86. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/monitoring/protocol_checker.py +0 -0
  87. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/monitoring/protocol_loader.py +0 -0
  88. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/monitoring/sensor_parsers.py +0 -0
  89. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_healthcare/monitors/monitoring/trajectory_analyzer.py +0 -0
  90. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/README.md +0 -0
  91. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/__init__.py +0 -0
  92. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/__init__.py +0 -0
  93. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/__init__.py +0 -0
  94. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/autogen_adapter.py +0 -0
  95. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/crewai_adapter.py +0 -0
  96. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/haystack_adapter.py +0 -0
  97. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/langchain_adapter.py +0 -0
  98. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/langgraph_adapter.py +0 -0
  99. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/native.py +0 -0
  100. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/adapters/wizard_adapter.py +0 -0
  101. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/base.py +0 -0
  102. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/crews/__init__.py +0 -0
  103. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/crews/code_review.py +0 -0
  104. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/crews/health_check.py +0 -0
  105. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/crews/refactoring.py +0 -0
  106. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/crews/security_audit.py +0 -0
  107. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/decorators.py +0 -0
  108. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/factory.py +0 -0
  109. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/framework.py +0 -0
  110. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/memory_integration.py +0 -0
  111. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agent_factory/resilient.py +0 -0
  112. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agents_md/__init__.py +0 -0
  113. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agents_md/loader.py +0 -0
  114. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agents_md/parser.py +0 -0
  115. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/agents_md/registry.py +0 -0
  116. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/claude_memory.py +0 -0
  117. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/cli/__init__.py +0 -0
  118. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/cli/sync_claude.py +0 -0
  119. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/code_health.py +0 -0
  120. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/commands/__init__.py +0 -0
  121. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/commands/context.py +0 -0
  122. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/commands/loader.py +0 -0
  123. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/commands/models.py +0 -0
  124. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/commands/parser.py +0 -0
  125. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/commands/registry.py +0 -0
  126. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/config/__init__.py +0 -0
  127. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/config/unified.py +0 -0
  128. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/context/__init__.py +0 -0
  129. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/context/compaction.py +0 -0
  130. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/context/manager.py +0 -0
  131. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/contextual_patterns.py +0 -0
  132. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/core.py +0 -0
  133. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/git_pattern_extractor.py +0 -0
  134. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/__init__.py +0 -0
  135. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/config.py +0 -0
  136. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/executor.py +0 -0
  137. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/registry.py +0 -0
  138. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/__init__.py +0 -0
  139. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/evaluate_session.py +0 -0
  140. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/first_time_init.py +0 -0
  141. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/pre_compact.py +0 -0
  142. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/session_end.py +0 -0
  143. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/session_start.py +0 -0
  144. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/hooks/scripts/suggest_compact.py +0 -0
  145. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/learning/__init__.py +0 -0
  146. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/learning/evaluator.py +0 -0
  147. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/learning/extractor.py +0 -0
  148. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/learning/storage.py +0 -0
  149. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/levels.py +0 -0
  150. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/pattern_confidence.py +0 -0
  151. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/pattern_resolver.py +0 -0
  152. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/pattern_summary.py +0 -0
  153. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/providers.py +0 -0
  154. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/routing/__init__.py +0 -0
  155. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/routing/model_router.py +0 -0
  156. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/IMPLEMENTATION_SUMMARY.md +0 -0
  157. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/PHASE2_COMPLETE.md +0 -0
  158. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +0 -0
  159. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/QUICK_REFERENCE.md +0 -0
  160. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/README.md +0 -0
  161. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/__init__.py +0 -0
  162. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/audit_logger.py +0 -0
  163. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/audit_logger_example.py +0 -0
  164. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/pii_scrubber.py +0 -0
  165. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/secrets_detector.py +0 -0
  166. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/secrets_detector_example.py +0 -0
  167. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/secure_memdocs.py +0 -0
  168. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/security/secure_memdocs_example.py +0 -0
  169. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/session_status.py +0 -0
  170. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/state.py +0 -0
  171. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/utils/__init__.py +0 -0
  172. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_llm/utils/tokens.py +0 -0
  173. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_software/SOFTWARE_PLUGIN_README.md +0 -0
  174. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_software/__init__.py +0 -0
  175. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_software/cli/__init__.py +0 -0
  176. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_software/cli/inspect.py +0 -0
  177. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_software/cli.py +0 -0
  178. {attune_ai-2.0.1 → attune_ai-2.1.0}/attune_software/plugin.py +0 -0
  179. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/llm-toolkit.md +0 -0
  180. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/memory.md +0 -0
  181. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/meta-orchestration.md +0 -0
  182. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/multi-agent.md +0 -0
  183. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/pattern-library.md +0 -0
  184. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/persistence.md +0 -0
  185. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/software-wizards.md +0 -0
  186. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/api-reference/workflows.md +0 -0
  187. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/examples/multi-agent-team-coordination.md +0 -0
  188. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/PUBLISHING.md +0 -0
  189. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/healthcare-wizards.md +0 -0
  190. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/multi-model-workflows.md +0 -0
  191. {attune_ai-2.0.1 → attune_ai-2.1.0}/docs/guides/trust-circuit-breaker.md +0 -0
  192. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/README.md +0 -0
  193. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/WIZARD_DASHBOARD_IMPLEMENTATION.md +0 -0
  194. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/WIZARD_DASHBOARD_STATE_MANAGEMENT.md +0 -0
  195. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/WIZARD_DASHBOARD_WIREFRAMES.md +0 -0
  196. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/adaptive_routing_demo.py +0 -0
  197. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/adaptive_routing_workflow_demo.py +0 -0
  198. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/agent_coordination_demo.py +0 -0
  199. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/agent_tracking_demo.py +0 -0
  200. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/anthropic_patterns_demo.py +0 -0
  201. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/anthropic_patterns_simple_demo.py +0 -0
  202. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/approval_gates_demo.py +0 -0
  203. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/claude_memory/README-SECURITY.md +0 -0
  204. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/claude_memory/enterprise-CLAUDE-secure.md +0 -0
  205. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/claude_memory/example-with-imports.md +0 -0
  206. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/claude_memory/project-CLAUDE.md +0 -0
  207. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/claude_memory/user-CLAUDE.md +0 -0
  208. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/complete-workflow/README.md +0 -0
  209. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/complete-workflow/workflow_example.py +0 -0
  210. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/config/empathy.config.example.yml +0 -0
  211. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/coordinated_workflow_demo.py +0 -0
  212. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/dashboard_demo.py +0 -0
  213. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/demos/demo_end_to_end_workflow.py +0 -0
  214. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/demos/demo_memory_integration.py +0 -0
  215. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/demos/demo_meta_workflows.py +0 -0
  216. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/demos/demo_progressive_demo.py +0 -0
  217. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/demos/demo_security_complete.py +0 -0
  218. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/demos/demo_test_workflow.py +0 -0
  219. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/domain_wizards/all_domain_wizards_demo.py +0 -0
  220. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/domain_wizards/healthcare_example.py +0 -0
  221. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/domain_wizards/tests/test_healthcare_wizard.py +0 -0
  222. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/event_streaming_demo.py +0 -0
  223. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/feedback_loop_demo.py +0 -0
  224. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/hybrid_cli_demo.py +0 -0
  225. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/interactive_team_creation.py +0 -0
  226. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/level_5_transformative/BLOG_POST.md +0 -0
  227. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/level_5_transformative/README.md +0 -0
  228. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/level_5_transformative/data/deployment_pipeline.py +0 -0
  229. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/level_5_transformative/data/healthcare_handoff_code.py +0 -0
  230. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/llm_toolkit_demo.py +0 -0
  231. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/meta_orchestrator_demo.py +0 -0
  232. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/multi_llm_usage.py +0 -0
  233. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/orchestration/advanced_composition.py +0 -0
  234. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/orchestration/basic_usage.py +0 -0
  235. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/orchestration/custom_workflow.py +0 -0
  236. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/progressive_test_gen_demo.py +0 -0
  237. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/quickstart/README.md +0 -0
  238. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/quickstart.py +0 -0
  239. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/redis_exploration.py +0 -0
  240. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/scanner_usage.py +0 -0
  241. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/security_integration_example.py +0 -0
  242. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/README.md +0 -0
  243. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/SOCRATIC_DEMO.md +0 -0
  244. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/complete_demo.py +0 -0
  245. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/config.yaml +0 -0
  246. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/dashboard_demo.py +0 -0
  247. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/demo.py +0 -0
  248. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/live_demo.py +0 -0
  249. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/seo_agent.py +0 -0
  250. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/utils.py +0 -0
  251. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/seo_optimization/with_memory_backend.py +0 -0
  252. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/simple_usage.py +0 -0
  253. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/smart_team_quickstart.py +0 -0
  254. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/sonnet_opus_fallback_example.py +0 -0
  255. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/suggest_adaptive_routing.py +0 -0
  256. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/test_approval_gates.py +0 -0
  257. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/test_debugging_wizard.py +0 -0
  258. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/workflow_chaining_demo.py +0 -0
  259. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/workflows/README.md +0 -0
  260. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/workflows/code_review_example.py +0 -0
  261. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/workflows/doc_gen_example.py +0 -0
  262. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/workflows/multi_model_example.py +0 -0
  263. {attune_ai-2.0.1 → attune_ai-2.1.0}/examples/workflows/research_example.py +0 -0
  264. {attune_ai-2.0.1 → attune_ai-2.1.0}/requirements.txt +0 -0
  265. {attune_ai-2.0.1 → attune_ai-2.1.0}/setup.cfg +0 -0
  266. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/__init__.py +0 -0
  267. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/adaptive/__init__.py +0 -0
  268. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/adaptive/task_complexity.py +0 -0
  269. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/agent_monitoring.py +0 -0
  270. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache/__init__.py +0 -0
  271. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache/base.py +0 -0
  272. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache/dependency_manager.py +0 -0
  273. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache/hash_only.py +0 -0
  274. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache/hybrid.py +0 -0
  275. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache/storage.py +0 -0
  276. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache_monitor.py +0 -0
  277. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cache_stats.py +0 -0
  278. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/__init__.py +0 -0
  279. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/__main__.py +0 -0
  280. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/__init__.py +0 -0
  281. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/batch.py +0 -0
  282. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/cache.py +0 -0
  283. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/help.py +0 -0
  284. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/info.py +0 -0
  285. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/inspect.py +0 -0
  286. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/inspection.py +0 -0
  287. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/memory.py +0 -0
  288. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/metrics.py +0 -0
  289. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/orchestrate.py +0 -0
  290. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/patterns.py +0 -0
  291. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/profiling.py +0 -0
  292. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/provider.py +0 -0
  293. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/routing.py +0 -0
  294. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/setup.py +0 -0
  295. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/status.py +0 -0
  296. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/sync.py +0 -0
  297. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/tier.py +0 -0
  298. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/utilities.py +0 -0
  299. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/commands/workflow.py +0 -0
  300. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/core.py +0 -0
  301. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/__init__.py +0 -0
  302. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/batch.py +0 -0
  303. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/cache.py +0 -0
  304. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/help.py +0 -0
  305. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/info.py +0 -0
  306. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/inspect.py +0 -0
  307. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/metrics.py +0 -0
  308. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/orchestrate.py +0 -0
  309. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/patterns.py +0 -0
  310. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/provider.py +0 -0
  311. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/routing.py +0 -0
  312. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/setup.py +0 -0
  313. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/status.py +0 -0
  314. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/sync.py +0 -0
  315. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/tier.py +0 -0
  316. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/parsers/workflow.py +0 -0
  317. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/utils/__init__.py +0 -0
  318. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/utils/data.py +0 -0
  319. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli/utils/helpers.py +0 -0
  320. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli_legacy.py +0 -0
  321. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli_minimal.py +0 -0
  322. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli_router.py +0 -0
  323. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cli_unified.py +0 -0
  324. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/config/__init__.py +0 -0
  325. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/config/xml_config.py +0 -0
  326. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/config.py +0 -0
  327. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/coordination.py +0 -0
  328. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/core.py +0 -0
  329. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/core_modules/__init__.py +0 -0
  330. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/cost_tracker.py +0 -0
  331. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/dashboard/__init__.py +0 -0
  332. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/dashboard/app.py +0 -0
  333. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/dashboard/simple_server.py +0 -0
  334. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/dashboard/standalone_server.py +0 -0
  335. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/discovery.py +0 -0
  336. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/emergence.py +0 -0
  337. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/exceptions.py +0 -0
  338. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/feedback_loops.py +0 -0
  339. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/README.md +0 -0
  340. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/__init__.py +0 -0
  341. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/config.py +0 -0
  342. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/integration.py +0 -0
  343. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/reloader.py +0 -0
  344. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/watcher.py +0 -0
  345. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/hot_reload/websocket.py +0 -0
  346. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/levels.py +0 -0
  347. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/leverage_points.py +0 -0
  348. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/logging_config.py +0 -0
  349. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/mcp/__init__.py +0 -0
  350. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/mcp/server.py +0 -0
  351. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/__init__.py +0 -0
  352. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/claude_memory.py +0 -0
  353. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/config.py +0 -0
  354. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/control_panel.py +0 -0
  355. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/control_panel_support.py +0 -0
  356. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/cross_session.py +0 -0
  357. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/edges.py +0 -0
  358. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/encryption.py +0 -0
  359. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/file_session.py +0 -0
  360. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/graph.py +0 -0
  361. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/long_term.py +0 -0
  362. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/long_term_types.py +0 -0
  363. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/__init__.py +0 -0
  364. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/backend_init_mixin.py +0 -0
  365. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/capabilities_mixin.py +0 -0
  366. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/handoff_mixin.py +0 -0
  367. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/lifecycle_mixin.py +0 -0
  368. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/long_term_mixin.py +0 -0
  369. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/promotion_mixin.py +0 -0
  370. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/mixins/short_term_mixin.py +0 -0
  371. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/nodes.py +0 -0
  372. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/redis_bootstrap.py +0 -0
  373. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/security/__init__.py +0 -0
  374. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/security/audit_logger.py +0 -0
  375. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/security/pii_scrubber.py +0 -0
  376. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/security/secrets_detector.py +0 -0
  377. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/short_term.py +0 -0
  378. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/simple_storage.py +0 -0
  379. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/storage/__init__.py +0 -0
  380. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/storage_backend.py +0 -0
  381. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/summary_index.py +0 -0
  382. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/types.py +0 -0
  383. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/memory/unified.py +0 -0
  384. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/__init__.py +0 -0
  385. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/agent_creator.py +0 -0
  386. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/builtin_templates.py +0 -0
  387. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/__init__.py +0 -0
  388. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/agent_commands.py +0 -0
  389. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/analytics_commands.py +0 -0
  390. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/config_commands.py +0 -0
  391. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/memory_commands.py +0 -0
  392. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/template_commands.py +0 -0
  393. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_commands/workflow_commands.py +0 -0
  394. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/cli_meta_workflows.py +0 -0
  395. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/form_engine.py +0 -0
  396. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/intent_detector.py +0 -0
  397. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/models.py +0 -0
  398. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/pattern_learner.py +0 -0
  399. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/plan_generator.py +0 -0
  400. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/session_context.py +0 -0
  401. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/template_registry.py +0 -0
  402. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/meta_workflows/workflow.py +0 -0
  403. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/metrics/__init__.py +0 -0
  404. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/metrics/collector.py +0 -0
  405. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/metrics/prompt_metrics.py +0 -0
  406. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/__init__.py +0 -0
  407. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/__main__.py +0 -0
  408. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/adaptive_routing.py +0 -0
  409. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/auth_cli.py +0 -0
  410. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/auth_strategy.py +0 -0
  411. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/cli.py +0 -0
  412. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/empathy_executor.py +0 -0
  413. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/executor.py +0 -0
  414. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/fallback.py +0 -0
  415. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/provider_config.py +0 -0
  416. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/registry.py +0 -0
  417. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/tasks.py +0 -0
  418. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/telemetry/__init__.py +0 -0
  419. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/telemetry/analytics.py +0 -0
  420. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/telemetry/backend.py +0 -0
  421. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/telemetry/data_models.py +0 -0
  422. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/telemetry/storage.py +0 -0
  423. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/token_estimator.py +0 -0
  424. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/models/validation.py +0 -0
  425. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/monitoring/__init__.py +0 -0
  426. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/monitoring/alerts.py +0 -0
  427. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/monitoring/alerts_cli.py +0 -0
  428. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/monitoring/multi_backend.py +0 -0
  429. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/monitoring/otel_backend.py +0 -0
  430. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/optimization/__init__.py +0 -0
  431. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/optimization/context_optimizer.py +0 -0
  432. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/__init__.py +0 -0
  433. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/agent_templates.py +0 -0
  434. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/config_store.py +0 -0
  435. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/execution_strategies.py +0 -0
  436. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/meta_orchestrator.py +0 -0
  437. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/pattern_learner.py +0 -0
  438. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/orchestration/real_tools.py +0 -0
  439. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/pattern_cache.py +0 -0
  440. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/pattern_library.py +0 -0
  441. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/patterns/debugging/all_patterns.json +0 -0
  442. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/patterns/debugging/workflow_20260107_1770825e.json +0 -0
  443. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/patterns/refactoring_memory.json +0 -0
  444. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/persistence.py +0 -0
  445. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/platform_utils.py +0 -0
  446. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/plugins/__init__.py +0 -0
  447. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/plugins/base.py +0 -0
  448. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/plugins/registry.py +0 -0
  449. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/__init__.py +0 -0
  450. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/cli.py +0 -0
  451. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/index.py +0 -0
  452. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/models.py +0 -0
  453. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/reports.py +0 -0
  454. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/scanner.py +0 -0
  455. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/project_index/scanner_parallel.py +0 -0
  456. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/prompts/__init__.py +0 -0
  457. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/prompts/config.py +0 -0
  458. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/prompts/context.py +0 -0
  459. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/prompts/parser.py +0 -0
  460. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/prompts/registry.py +0 -0
  461. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/prompts/templates.py +0 -0
  462. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/redis_config.py +0 -0
  463. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/redis_memory.py +0 -0
  464. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/resilience/__init__.py +0 -0
  465. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/resilience/circuit_breaker.py +0 -0
  466. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/resilience/fallback.py +0 -0
  467. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/resilience/health.py +0 -0
  468. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/resilience/retry.py +0 -0
  469. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/resilience/timeout.py +0 -0
  470. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/routing/__init__.py +0 -0
  471. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/routing/chain_executor.py +0 -0
  472. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/routing/classifier.py +0 -0
  473. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/routing/smart_router.py +0 -0
  474. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/routing/workflow_registry.py +0 -0
  475. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/README.md +0 -0
  476. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/__init__.py +0 -0
  477. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/__main__.py +0 -0
  478. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/cli.py +0 -0
  479. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/templates/base_wizard.py.jinja2 +0 -0
  480. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/templates/coach_wizard.py.jinja2 +0 -0
  481. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/templates/domain_wizard.py.jinja2 +0 -0
  482. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/scaffolding/templates/linear_flow_wizard.py.jinja2 +0 -0
  483. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/__init__.py +0 -0
  484. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/ab_testing.py +0 -0
  485. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/blueprint.py +0 -0
  486. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/cli.py +0 -0
  487. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/collaboration.py +0 -0
  488. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/domain_templates.py +0 -0
  489. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/embeddings.py +0 -0
  490. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/engine.py +0 -0
  491. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/explainer.py +0 -0
  492. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/feedback.py +0 -0
  493. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/forms.py +0 -0
  494. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/generator.py +0 -0
  495. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/llm_analyzer.py +0 -0
  496. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/mcp_server.py +0 -0
  497. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/session.py +0 -0
  498. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/storage.py +0 -0
  499. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/success.py +0 -0
  500. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/visual_editor.py +0 -0
  501. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/socratic/web_ui.py +0 -0
  502. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/__init__.py +0 -0
  503. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/agent_coordination.py +0 -0
  504. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/agent_tracking.py +0 -0
  505. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/approval_gates.py +0 -0
  506. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/cli.py +0 -0
  507. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/commands/__init__.py +0 -0
  508. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/commands/dashboard_commands.py +0 -0
  509. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/event_streaming.py +0 -0
  510. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/feedback_loop.py +0 -0
  511. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/telemetry/usage_tracker.py +0 -0
  512. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/templates.py +0 -0
  513. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/test_generator/__init__.py +0 -0
  514. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/test_generator/__main__.py +0 -0
  515. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/test_generator/cli.py +0 -0
  516. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/test_generator/generator.py +0 -0
  517. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/test_generator/risk_analyzer.py +0 -0
  518. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/test_generator/templates/unit_test.py.jinja2 +0 -0
  519. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/tier_recommender.py +0 -0
  520. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/tools.py +0 -0
  521. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/trust/__init__.py +0 -0
  522. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/trust/circuit_breaker.py +0 -0
  523. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/trust_building.py +0 -0
  524. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/validation/__init__.py +0 -0
  525. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/validation/xml_validator.py +0 -0
  526. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/vscode_bridge.py +0 -0
  527. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_commands.py +0 -0
  528. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_patterns/__init__.py +0 -0
  529. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_patterns/behavior.py +0 -0
  530. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_patterns/core.py +0 -0
  531. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_patterns/output.py +0 -0
  532. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_patterns/registry.py +0 -0
  533. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflow_patterns/structural.py +0 -0
  534. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/__init__.py +0 -0
  535. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/autonomous_test_gen.py +0 -0
  536. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/base.py +0 -0
  537. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/batch_processing.py +0 -0
  538. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/bug_predict.py +0 -0
  539. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/builder.py +0 -0
  540. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/caching.py +0 -0
  541. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/code_review.py +0 -0
  542. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/code_review_adapters.py +0 -0
  543. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/code_review_pipeline.py +0 -0
  544. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/config.py +0 -0
  545. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/dependency_check.py +0 -0
  546. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/document_gen/__init__.py +0 -0
  547. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/document_gen/config.py +0 -0
  548. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/document_gen/report_formatter.py +0 -0
  549. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/document_gen/workflow.py +0 -0
  550. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/document_manager.py +0 -0
  551. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/document_manager_README.md +0 -0
  552. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/documentation_orchestrator.py +0 -0
  553. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/history.py +0 -0
  554. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/keyboard_shortcuts/__init__.py +0 -0
  555. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/keyboard_shortcuts/generators.py +0 -0
  556. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/keyboard_shortcuts/parsers.py +0 -0
  557. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/keyboard_shortcuts/prompts.py +0 -0
  558. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/keyboard_shortcuts/schema.py +0 -0
  559. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/keyboard_shortcuts/workflow.py +0 -0
  560. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/llm_base.py +0 -0
  561. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/manage_docs.py +0 -0
  562. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/manage_docs_README.md +0 -0
  563. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/manage_documentation.py +0 -0
  564. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/new_sample_workflow1.py +0 -0
  565. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/new_sample_workflow1_README.md +0 -0
  566. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/orchestrated_health_check.py +0 -0
  567. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/orchestrated_release_prep.py +0 -0
  568. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/output.py +0 -0
  569. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/pr_review.py +0 -0
  570. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progress.py +0 -0
  571. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progress_server.py +0 -0
  572. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/README.md +0 -0
  573. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/__init__.py +0 -0
  574. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/cli.py +0 -0
  575. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/core.py +0 -0
  576. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/orchestrator.py +0 -0
  577. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/reports.py +0 -0
  578. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/telemetry.py +0 -0
  579. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/test_gen.py +0 -0
  580. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/progressive/workflow.py +0 -0
  581. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/refactor_plan.py +0 -0
  582. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/release_prep.py +0 -0
  583. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/release_prep_crew.py +0 -0
  584. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/research_synthesis.py +0 -0
  585. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/routing.py +0 -0
  586. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/secure_release.py +0 -0
  587. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/security_adapters.py +0 -0
  588. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/security_audit.py +0 -0
  589. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/security_audit_phase3.py +0 -0
  590. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/seo_optimization.py +0 -0
  591. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/step_config.py +0 -0
  592. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/telemetry_mixin.py +0 -0
  593. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test5.py +0 -0
  594. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test5_README.md +0 -0
  595. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_coverage_boost_crew.py +0 -0
  596. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/__init__.py +0 -0
  597. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/ast_analyzer.py +0 -0
  598. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/config.py +0 -0
  599. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/data_models.py +0 -0
  600. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/report_formatter.py +0 -0
  601. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/test_templates.py +0 -0
  602. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen/workflow.py +0 -0
  603. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen.py +0 -0
  604. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen_behavioral.py +0 -0
  605. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_gen_parallel.py +0 -0
  606. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_lifecycle.py +0 -0
  607. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_maintenance.py +0 -0
  608. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_maintenance_cli.py +0 -0
  609. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_maintenance_crew.py +0 -0
  610. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/test_runner.py +0 -0
  611. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/tier_tracking.py +0 -0
  612. {attune_ai-2.0.1 → attune_ai-2.1.0}/src/attune/workflows/xml_enhanced_crew.py +0 -0
  613. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_agent_factory.py +0 -0
  614. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_agent_factory_memory.py +0 -0
  615. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_agent_factory_resilience.py +0 -0
  616. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_audit_logger.py +0 -0
  617. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_audit_logger_extended.py +0 -0
  618. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_base.py +0 -0
  619. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_baseline.py +0 -0
  620. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_book_production_agents.py +0 -0
  621. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_bug_predict_workflow.py +0 -0
  622. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_claude_memory.py +0 -0
  623. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_claude_memory_extended.py +0 -0
  624. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_clinical_protocol_monitor.py +0 -0
  625. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_code_health.py +0 -0
  626. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_code_review.py +0 -0
  627. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_code_review_crew_integration.py +0 -0
  628. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_code_review_pipeline.py +0 -0
  629. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_code_review_pipeline_workflow.py +0 -0
  630. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_code_review_workflow.py +0 -0
  631. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_config.py +0 -0
  632. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_control_panel.py +0 -0
  633. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_control_panel_security.py +0 -0
  634. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_coordination.py +0 -0
  635. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_core.py +0 -0
  636. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_core_reliability.py +0 -0
  637. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_cost_tracker.py +0 -0
  638. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_dependency_check.py +0 -0
  639. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_dependency_check_workflow.py +0 -0
  640. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_discovery.py +0 -0
  641. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_document_gen.py +0 -0
  642. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_document_gen_workflow.py +0 -0
  643. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_emergence.py +0 -0
  644. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_empathy_llm_core.py +0 -0
  645. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_empathy_llm_security.py +0 -0
  646. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_empathy_os.py +0 -0
  647. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_exceptions.py +0 -0
  648. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_executor_integration.py +0 -0
  649. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_fallback.py +0 -0
  650. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_fallback_suite.py +0 -0
  651. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_feedback_loops.py +0 -0
  652. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_finding_extraction.py +0 -0
  653. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_graph.py +0 -0
  654. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_health_check.py +0 -0
  655. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_healthcare_plugin.py +0 -0
  656. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_intelligence_integration.py +0 -0
  657. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_levels.py +0 -0
  658. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_leverage_points.py +0 -0
  659. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_integration.py +0 -0
  660. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_agents.py +0 -0
  661. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_core.py +0 -0
  662. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_decorators.py +0 -0
  663. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_empathy_core.py +0 -0
  664. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_langgraph_adapter.py +0 -0
  665. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_levels.py +0 -0
  666. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_memory.py +0 -0
  667. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_patterns.py +0 -0
  668. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_providers.py +0 -0
  669. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_security.py +0 -0
  670. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_session_status.py +0 -0
  671. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_llm_toolkit_wizard_adapter.py +0 -0
  672. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_logging_config.py +0 -0
  673. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_long_term.py +0 -0
  674. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_memory_graph.py +0 -0
  675. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_model_registry.py +0 -0
  676. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_model_router.py +0 -0
  677. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_monitoring.py +0 -0
  678. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_pattern_cache.py +0 -0
  679. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_pattern_library.py +0 -0
  680. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_perf_audit_workflow.py +0 -0
  681. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_persistence.py +0 -0
  682. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_pii_scrubber.py +0 -0
  683. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_pii_scrubber_extended.py +0 -0
  684. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_platform_compat_ci.py +0 -0
  685. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_platform_utils.py +0 -0
  686. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_plugin_base.py +0 -0
  687. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_plugin_registry.py +0 -0
  688. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_pr_review.py +0 -0
  689. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_pr_review_workflow.py +0 -0
  690. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_production_smoke.py +0 -0
  691. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_progress.py +0 -0
  692. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_protocol_checker.py +0 -0
  693. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_protocol_loader.py +0 -0
  694. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_provider_config.py +0 -0
  695. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_providers.py +0 -0
  696. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_redis_bootstrap.py +0 -0
  697. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_redis_config.py +0 -0
  698. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_redis_integration.py +0 -0
  699. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_redis_memory.py +0 -0
  700. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_redis_memory_errors.py +0 -0
  701. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_refactor_golden.py +0 -0
  702. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_refactor_plan_workflow.py +0 -0
  703. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_refactoring.py +0 -0
  704. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_refactoring_crew.py +0 -0
  705. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_registry.py +0 -0
  706. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_release_prep.py +0 -0
  707. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_reporting.py +0 -0
  708. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_reports.py +0 -0
  709. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_resilience.py +0 -0
  710. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_sbar_wizard.py +0 -0
  711. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_scanner.py +0 -0
  712. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_scanner_exceptions.py +0 -0
  713. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_secrets_detector.py +0 -0
  714. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_secure_memdocs.py +0 -0
  715. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_secure_memdocs_extended.py +0 -0
  716. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_secure_release.py +0 -0
  717. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_secure_release_workflow.py +0 -0
  718. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_audit.py +0 -0
  719. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_audit_crew.py +0 -0
  720. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_audit_workflow.py +0 -0
  721. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_crew_integration.py +0 -0
  722. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_integration.py +0 -0
  723. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_negative_cases.py +0 -0
  724. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_security_scan.py +0 -0
  725. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_sensor_parsers.py +0 -0
  726. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_session_status.py +0 -0
  727. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_short_term.py +0 -0
  728. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_smart_router.py +0 -0
  729. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_smoke.py +0 -0
  730. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_sonnet_opus_fallback.py +0 -0
  731. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_state.py +0 -0
  732. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_step_config.py +0 -0
  733. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_summary_index.py +0 -0
  734. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_sync_claude.py +0 -0
  735. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_tech_debt_wizard.py +0 -0
  736. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_telemetry.py +0 -0
  737. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_templates.py +0 -0
  738. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_timeout.py +0 -0
  739. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_token_estimator.py +0 -0
  740. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_trajectory_analyzer.py +0 -0
  741. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_trust_building.py +0 -0
  742. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_trust_circuit_breaker.py +0 -0
  743. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_unified_memory.py +0 -0
  744. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_validation.py +0 -0
  745. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_wizard_outputs.py +0 -0
  746. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_wizard_site_comprehensive.py +0 -0
  747. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_workflow_base.py +0 -0
  748. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_workflow_commands.py +0 -0
  749. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_workflow_wizard_integration.py +0 -0
  750. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_xml_prompts.py +0 -0
  751. {attune_ai-2.0.1 → attune_ai-2.1.0}/tests/test_xml_spec_generation.py +0 -0
  752. {attune_ai-2.0.1 → attune_ai-2.1.0}/workflow_scaffolding/__init__.py +0 -0
  753. {attune_ai-2.0.1 → attune_ai-2.1.0}/workflow_scaffolding/__main__.py +0 -0
  754. {attune_ai-2.0.1 → attune_ai-2.1.0}/workflow_scaffolding/cli.py +0 -0
  755. {attune_ai-2.0.1 → attune_ai-2.1.0}/workflow_scaffolding/generator.py +0 -0
@@ -7,30 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [2.0.1] - 2026-02-01
10
+ ## [2.1.0] - 2026-02-01
11
11
 
12
- ### Changed
12
+ ### Added
13
13
 
14
- - **README.md**: Consolidated version history into single "What's New in v2.0.0" section
15
- - Removed confusing legacy version sections (v5.3.0, v5.1.0, v5.0.2, v4.9.0, v4.7.0)
16
- - Clean, focused presentation of Attune AI features
17
- - Updated test badge to show 13,489 tests collected
18
- - Clarified $0 workflows caveat for 1M API context requirement
14
+ - **Unified `/attune` command**: Single entry point with Socratic discovery for all workflows
15
+ - **Interactive workflow navigation**: Question-based flow guides users to the right tool
19
16
 
20
- - **Website Branding**: Updated all references across 20+ pages
21
- - "Empathy Framework" → "Attune AI"
22
- - `empathy-framework` → `attune-ai` in all install commands
23
- - GitHub URLs updated to `Smart-AI-Memory/attune-ai`
17
+ ### Changed
24
18
 
25
- - **Documentation**: Comprehensive branding updates
26
- - 1,116+ references updated across all markdown files
27
- - All package names and commands updated
28
- - Consistent "Attune AI" branding throughout
19
+ - **Consolidated command hubs**: Removed 9 separate hub commands in favor of unified `/attune`
20
+ - **Performance audit**: Removed `large_list_copy` false positive detection
29
21
 
30
22
  ### Fixed
31
23
 
32
- - Markdown linting: Added proper blank lines around lists in README
33
- - Accurate description of cost model for workflows
24
+ - **perf_audit.py**: No longer flags intentional patterns like `dirs[:]` for os.walk or defensive list copies
34
25
 
35
26
  ## [2.0.0] - 2026-02-01
36
27
 
@@ -1,6 +1,6 @@
1
- # Contributing to Empathy Framework
1
+ # Contributing to Attune AI
2
2
 
3
- Thank you for your interest in contributing to the Empathy Framework! This document provides guidelines and best practices for contributing.
3
+ Thank you for your interest in contributing to Attune AI! This document provides guidelines and best practices for contributing.
4
4
 
5
5
  ## Table of Contents
6
6
 
@@ -28,8 +28,8 @@ We are committed to providing a welcoming and inclusive environment. Please be r
28
28
 
29
29
  ```bash
30
30
  # Clone the repository
31
- git clone https://github.com/Deep-Study-AI/Empathy.git
32
- cd Empathy
31
+ git clone https://github.com/Smart-AI-Memory/attune-ai.git
32
+ cd attune-ai
33
33
 
34
34
  # Create virtual environment
35
35
  python3 -m venv venv
@@ -49,8 +49,7 @@ pytest tests/
49
49
 
50
50
  ### Branch Strategy
51
51
 
52
- - `main` - Stable releases
53
- - `develop` - Development branch
52
+ - `main` - Stable releases (merge via pull request)
54
53
  - `feature/*` - New features
55
54
  - `fix/*` - Bug fixes
56
55
  - `docs/*` - Documentation updates
@@ -58,9 +57,9 @@ pytest tests/
58
57
  ### Creating a Feature
59
58
 
60
59
  ```bash
61
- # Create feature branch from develop
62
- git checkout develop
63
- git pull origin develop
60
+ # Create feature branch from main
61
+ git checkout main
62
+ git pull origin main
64
63
  git checkout -b feature/your-feature-name
65
64
 
66
65
  # Make your changes
@@ -82,7 +81,7 @@ git push origin feature/your-feature-name
82
81
 
83
82
  We follow conventional commits:
84
83
 
85
- ```
84
+ ```text
86
85
  <type>: <subject>
87
86
 
88
87
  <body>
@@ -91,6 +90,7 @@ We follow conventional commits:
91
90
  ```
92
91
 
93
92
  **Types:**
93
+
94
94
  - `feat`: New feature
95
95
  - `fix`: Bug fix
96
96
  - `docs`: Documentation changes
@@ -102,7 +102,7 @@ We follow conventional commits:
102
102
 
103
103
  **Examples:**
104
104
 
105
- ```
105
+ ```text
106
106
  feat: Add Level 5 systems thinking module
107
107
 
108
108
  Implements pattern sharing between multiple AI agents
@@ -111,7 +111,7 @@ for emergent collaboration capabilities.
111
111
  Closes #42
112
112
  ```
113
113
 
114
- ```
114
+ ```text
115
115
  fix: Correct trust calculation in feedback loops
116
116
 
117
117
  Trust erosion was not properly clamped to [0,1] range.
@@ -132,8 +132,8 @@ All new code must include tests. We aim for **70%+ coverage**.
132
132
  """
133
133
  Tests for Module Name
134
134
 
135
- Copyright 2025 Smart AI Memory, LLC
136
- Licensed under Fair Source 0.9
135
+ Copyright 2025 Patrick Roebuck
136
+ Licensed under Apache License 2.0
137
137
  """
138
138
 
139
139
  import pytest
@@ -186,9 +186,9 @@ pytest tests/ -s
186
186
 
187
187
  ### Coverage Requirements
188
188
 
189
- - Minimum **70% overall coverage**
190
- - New modules should have **80%+ coverage**
191
- - Critical modules (core, levels) should have **90%+ coverage**
189
+ - Minimum **80% overall coverage**
190
+ - New modules should have **90%+ coverage**
191
+ - Critical modules (core, workflows, security) should have **95%+ coverage**
192
192
 
193
193
  ### Test Categories
194
194
 
@@ -256,6 +256,7 @@ class LeveragePointAnalyzer:
256
256
  ```
257
257
 
258
258
  **Docstring Sections:**
259
+
259
260
  - **Summary**: One-line description
260
261
  - **Extended Description**: Detailed explanation (optional)
261
262
  - **Example**: Usage example with >>> prompts
@@ -332,6 +333,7 @@ def process_data(data: List[Dict]) -> Dict:
332
333
  ### When to Update Documentation
333
334
 
334
335
  Update documentation when:
336
+
335
337
  - Adding new features
336
338
  - Changing public APIs
337
339
  - Adding examples
@@ -348,6 +350,7 @@ Update documentation when:
348
350
  ### Writing Examples
349
351
 
350
352
  Good examples are:
353
+
351
354
  - **Self-contained**: Run without external dependencies
352
355
  - **Well-commented**: Explain what and why
353
356
  - **Practical**: Show real-world use cases
@@ -360,8 +363,8 @@ Example: Building Trust Through Anticipation
360
363
  Demonstrates Level 4 Anticipatory Empathy by predicting
361
364
  user needs before they arise.
362
365
 
363
- Copyright 2025 Smart AI Memory, LLC
364
- Licensed under Fair Source 0.9
366
+ Copyright 2025 Patrick Roebuck
367
+ Licensed under Apache License 2.0
365
368
  """
366
369
 
367
370
  from attune import EmpathyOS
@@ -386,7 +389,7 @@ if __name__ == "__main__":
386
389
  ### Before Submitting
387
390
 
388
391
  1. **Run all tests**: `pytest tests/ --cov=src/attune`
389
- 2. **Check coverage**: Ensure 70%+ coverage
392
+ 2. **Check coverage**: Ensure 80%+ coverage
390
393
  3. **Update documentation**: Add/update relevant docs
391
394
  4. **Add examples**: If adding features, add example
392
395
  5. **Self-review**: Read through your changes
@@ -394,13 +397,13 @@ if __name__ == "__main__":
394
397
  ### PR Checklist
395
398
 
396
399
  - [ ] Tests pass locally
397
- - [ ] Coverage is 70%+ overall
398
- - [ ] New code has tests (80%+ coverage for new modules)
400
+ - [ ] Coverage is 80%+ overall
401
+ - [ ] New code has tests (90%+ coverage for new modules)
399
402
  - [ ] Documentation updated
400
403
  - [ ] Examples added/updated if relevant
401
404
  - [ ] Commit messages follow conventional format
402
405
  - [ ] Code follows style guide
403
- - [ ] No merge conflicts with develop
406
+ - [ ] No merge conflicts with main
404
407
 
405
408
  ### PR Template
406
409
 
@@ -445,7 +448,7 @@ Any additional context or notes for reviewers.
445
448
 
446
449
  - Your contribution will be included in next release
447
450
  - You'll be added to contributors list
448
- - Thank you for improving Empathy Framework!
451
+ - Thank you for improving Attune AI!
449
452
 
450
453
  ## Getting Help
451
454
 
@@ -456,6 +459,7 @@ Any additional context or notes for reviewers.
456
459
  ## Recognition
457
460
 
458
461
  Contributors are recognized in:
462
+
459
463
  - README.md contributors section
460
464
  - Release notes
461
465
  - Project documentation
@@ -466,4 +470,4 @@ By contributing, you agree that your contributions will be licensed under the Ap
466
470
 
467
471
  ---
468
472
 
469
- Thank you for contributing to Empathy Framework! 🤝
473
+ Thank you for contributing to Attune AI! 🤝
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: attune-ai
3
- Version: 2.0.1
3
+ Version: 2.1.0
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,14 +421,14 @@ 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
426
  **AI-powered developer workflows with cost optimization and pattern learning.**
427
427
 
428
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
- [![Tests](https://img.shields.io/badge/tests-13%2C489%20collected-brightgreen)](https://github.com/Smart-AI-Memory/attune-ai/actions)
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
434
  [![Performance](https://img.shields.io/badge/performance-18x%20faster-success)](https://github.com/Smart-AI-Memory/attune-ai/blob/main/CHANGELOG.md)
@@ -441,7 +441,7 @@ pip install attune-ai[developer]
441
441
 
442
442
  ## 🎯 Transitioning to Claude-Native Architecture
443
443
 
444
- **Attune AI is evolving to focus exclusively on Anthropic/Claude** to unlock features impossible with multi-provider abstraction:
444
+ **Empathy Framework is evolving to focus exclusively on Anthropic/Claude** to unlock features impossible with multi-provider abstraction:
445
445
 
446
446
  - **📦 Prompt Caching:** 90% cost reduction on repeated prompts
447
447
  - **📖 Flexible Context:** 200K via subscription for most tasks, up to 1M via API for large codebases
@@ -458,64 +458,169 @@ pip install attune-ai[developer]
458
458
 
459
459
  ---
460
460
 
461
- ## What's New in v2.0.0
461
+ ## What's New in v5.3.0
462
462
 
463
- **🎉 Introducing Attune AI** - A fresh start with a new name and renewed focus:
463
+ **🎨 Dashboard Enhancements** - Improved usability and clarity:
464
464
 
465
- **Package Rebrand**: `empathy-framework` is now `attune-ai`
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
466
469
 
467
- - New package name, same powerful features
468
- - All capabilities from v5.x preserved
469
- - Starting fresh at v2.0.0 to mark the new brand
470
+ **📚 Documentation Improvements**:
470
471
 
471
- **🤖 Multi-Agent Orchestration** - Build and coordinate specialized AI agents:
472
+ - Clarified flexible context strategy (200K subscription + 1M API routing)
473
+ - Added Redis requirement documentation for dashboard
474
+ - Root directory cleanup (8 archived files)
472
475
 
473
- - **Agent Coordination Dashboard** - Real-time monitoring with 6 coordination patterns
474
- - **Custom Agents** - Create specialized agents for your workflow needs
475
- - **LLM Agents** - Leverage Claude's advanced capabilities
476
- - Dashboard at `http://localhost:8000` with `python examples/dashboard_demo.py` (requires Redis)
476
+ **🧪 Test Infrastructure**:
477
477
 
478
- **💰 Intelligent Cost Optimization**:
478
+ - Sequential test execution to fix import timing issues
479
+ - All agent tracking tests passing (19/19)
479
480
 
480
- - **Authentication Strategy** - Smart routing between Claude subscription (free) and Anthropic API
481
- - **Batch API** - 50% cost savings for non-urgent tasks
482
- - **Smart Tier Routing** - Automatic model selection saves 34-86% on costs
483
- - **Precise Token Counting** - >98% accurate cost tracking
481
+ [See Full Changelog](CHANGELOG.md#530---2026-01-31)
484
482
 
485
- **⚡ Performance & Scale**:
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:
502
+
503
+ ```bash
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
512
+ ```
513
+
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
486
520
 
487
- - **18x Faster** - Redis caching, parallel scanning, incremental updates
488
- - **99.9% Memory Reduction** - Generator expressions across 27 optimizations
489
- - **Natural Language** - Use plain English for workflow commands
490
- - **13,489 Tests** - Comprehensive test coverage (99.9% passing)
521
+ **🧪 Comprehensive Testing** - 7 new integration tests for auth strategy:
491
522
 
492
- **🔐 Security & Quality**:
523
+ - All workflows tested with auth enabled/disabled
524
+ - API and subscription mode verification
525
+ - Cost tracking validation
493
526
 
494
- - **Automated Security Scanning** - 82% accuracy, blocks critical issues
495
- - **Path Traversal Protection** - All file operations validated
496
- - **HIPAA/GDPR Compliance** - Enterprise-ready security options
527
+ **📖 Documentation** - 950+ lines across 3 guides:
497
528
 
498
- **🧭 Developer Experience**:
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
499
532
 
500
- - **MCP Integration** - 10 tools auto-discovered by Claude Code
501
- - **Hub-Based Commands** - Organized workflows (`/dev`, `/testing`, `/release`, etc.)
502
- - **Socratic Workflows** - Interactive discovery through guided questions
503
- - **$0 Workflows** - Run via Claude Code with no API costs, unless a 1 million API context is required.
533
+ [See Full Changelog](CHANGELOG.md#510---2026-01-29)
504
534
 
505
- **Migration from Empathy Framework**:
535
+ ---
536
+
537
+ ## What's New in v5.0.2
538
+
539
+ **💰 50% Cost Savings with Batch API** - Process non-urgent tasks asynchronously:
506
540
 
507
541
  ```bash
508
- # Old package
509
- pip uninstall empathy-framework
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
+ ```
510
546
 
511
- # New package
512
- pip install attune-ai[developer]
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
513
582
 
514
- # Update imports in your code
515
- # from empathy_os → from attune
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
516
597
  ```
517
598
 
518
- [See Full Changelog](CHANGELOG.md) | [Migration Guide](docs/MIGRATION_GUIDE.md)
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.
618
+
619
+ **Socratic Workflows** - Interactive discovery through guided questions. Workflows ask what you need rather than requiring upfront configuration.
620
+
621
+ **Security Hardened** - Fixed critical vulnerabilities (path traversal, JWT, SSRF).
622
+
623
+ **Hub-Based Commands** - Organized workflows into intuitive command hubs.
519
624
 
520
625
  ---
521
626
 
@@ -554,7 +659,7 @@ python -m attune.models.cli provider --set anthropic
554
659
  /plan "review my code"
555
660
 
556
661
  # Direct tool access via MCP (v5.1.1+):
557
- # Claude Code automatically discovers Attune AI tools through the MCP server
662
+ # Claude Code automatically discovers Empathy tools through the MCP server
558
663
  # Just describe what you need in natural language:
559
664
  "Run a security audit on src/" → Invokes security_audit tool
560
665
  "Generate tests for config.py" → Invokes test_generation tool
@@ -564,7 +669,7 @@ python -m attune.models.cli provider --set anthropic
564
669
 
565
670
  **MCP Server Integration (v5.1.1+):**
566
671
 
567
- Attune AI now includes a Model Context Protocol (MCP) server that exposes all workflows as native Claude Code tools:
672
+ Empathy Framework now includes a Model Context Protocol (MCP) server that exposes all workflows as native Claude Code tools:
568
673
 
569
674
  - **10 Tools Available:** security_audit, bug_predict, code_review, test_generation, performance_audit, release_prep, auth_status, auth_recommend, telemetry_stats, dashboard_status
570
675
  - **Automatic Discovery:** No manual configuration needed - Claude Code finds tools via `.claude/mcp.json`
@@ -586,9 +691,9 @@ See [.claude/MCP_TEST_RESULTS.md](.claude/MCP_TEST_RESULTS.md) for full integrat
586
691
  **CLI:**
587
692
 
588
693
  ```bash
589
- attune workflow run security-audit --path ./src
590
- attune workflow run test-coverage --target 90
591
- attune telemetry show # View cost savings
694
+ empathy workflow run security-audit --path ./src
695
+ empathy workflow run test-coverage --target 90
696
+ empathy telemetry show # View cost savings
592
697
  ```
593
698
 
594
699
  **Python:**
@@ -596,8 +701,8 @@ attune telemetry show # View cost savings
596
701
  ```python
597
702
  from attune import EmpathyOS
598
703
 
599
- async with EmpathyOS() as attune:
600
- result = await attune.level_2_guided(
704
+ async with EmpathyOS() as empathy:
705
+ result = await empathy.level_2_guided(
601
706
  "Review this code for security issues"
602
707
  )
603
708
  print(result["response"])
@@ -707,7 +812,7 @@ For programmatic use, smart tier routing saves 34-86%:
707
812
 
708
813
  ```bash
709
814
  # Track API usage and savings
710
- attune telemetry savings --days 30
815
+ empathy telemetry savings --days 30
711
816
  ```
712
817
 
713
818
  ---
@@ -718,10 +823,10 @@ attune telemetry savings --days 30
718
823
 
719
824
  ```bash
720
825
  # 4 parallel agents check release readiness
721
- attune orchestrate release-prep
826
+ empathy orchestrate release-prep
722
827
 
723
828
  # Sequential coverage improvement
724
- attune orchestrate test-coverage --target 90
829
+ empathy orchestrate test-coverage --target 90
725
830
  ```
726
831
 
727
832
  ### Response Caching
@@ -769,21 +874,21 @@ python -m attune.models.cli provider
769
874
  python -m attune.models.cli provider --set hybrid
770
875
 
771
876
  # Workflows
772
- attune workflow list
773
- attune workflow run <workflow-name>
877
+ empathy workflow list
878
+ empathy workflow run <workflow-name>
774
879
 
775
880
  # Cost tracking
776
- attune telemetry show
777
- attune telemetry savings --days 30
778
- attune telemetry export --format csv
881
+ empathy telemetry show
882
+ empathy telemetry savings --days 30
883
+ empathy telemetry export --format csv
779
884
 
780
885
  # Orchestration
781
- attune orchestrate release-prep
782
- attune orchestrate test-coverage --target 90
886
+ empathy orchestrate release-prep
887
+ empathy orchestrate test-coverage --target 90
783
888
 
784
889
  # Meta-workflows
785
- attune meta-workflow list
786
- attune meta-workflow run release-prep --real
890
+ empathy meta-workflow list
891
+ empathy meta-workflow run release-prep --real
787
892
  ```
788
893
 
789
894
  ---
@@ -829,7 +934,7 @@ export REDIS_URL="redis://localhost:6379"
829
934
 
830
935
  ## VSCode Extension
831
936
 
832
- Install the Attune AI VSCode extension for:
937
+ Install the Empathy VSCode extension for:
833
938
 
834
939
  - **Dashboard** - Health score, costs, patterns
835
940
  - **One-Click Workflows** - Run from command palette
@@ -864,10 +969,10 @@ See [SECURITY.md](SECURITY.md) for vulnerability reporting.
864
969
 
865
970
  ```bash
866
971
  # Run security audit locally
867
- attune workflow run security-audit
972
+ empathy workflow run security-audit
868
973
 
869
974
  # Scan specific directory
870
- attune workflow run security-audit --input '{"path":"./src"}'
975
+ empathy workflow run security-audit --input '{"path":"./src"}'
871
976
  ```
872
977
 
873
978
  **Documentation:**