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