attune-ai 2.0.2__tar.gz → 2.1.1__tar.gz

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