empathy-framework 4.0.2__py3-none-any.whl → 4.0.3__py3-none-any.whl
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.
- {empathy_framework-4.0.2.dist-info → empathy_framework-4.0.3.dist-info}/METADATA +1 -1
- {empathy_framework-4.0.2.dist-info → empathy_framework-4.0.3.dist-info}/RECORD +8 -8
- empathy_llm_toolkit/providers.py +26 -23
- empathy_os/orchestration/real_tools.py +6 -3
- {empathy_framework-4.0.2.dist-info → empathy_framework-4.0.3.dist-info}/WHEEL +0 -0
- {empathy_framework-4.0.2.dist-info → empathy_framework-4.0.3.dist-info}/entry_points.txt +0 -0
- {empathy_framework-4.0.2.dist-info → empathy_framework-4.0.3.dist-info}/licenses/LICENSE +0 -0
- {empathy_framework-4.0.2.dist-info → empathy_framework-4.0.3.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: empathy-framework
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.3
|
|
4
4
|
Summary: AI collaboration framework with breakthrough meta-orchestration system enabling dynamic agent composition (6 composition patterns), intelligent caching (85% hit rate), tier routing (34-86% cost savings), performance optimizations (46% faster scans), XML-enhanced prompts, persistent memory, and multi-agent orchestration. Production workflows: Release Prep, Test Coverage Boost.
|
|
5
5
|
Author-email: Patrick Roebuck <admin@smartaimemory.com>
|
|
6
6
|
Maintainer-email: Smart-AI-Memory <admin@smartaimemory.com>
|
|
@@ -20,7 +20,7 @@ coach_wizards/refactoring_wizard.py,sha256=X0MTx3BHpOlOMAYDow-3HX5GyryY70JGAF5vA
|
|
|
20
20
|
coach_wizards/scaling_wizard.py,sha256=n1RLtpWmj1RSEGSWssMiUPwCdpskO3z2Z3yhLlTdXro,2598
|
|
21
21
|
coach_wizards/security_wizard.py,sha256=19SOClSxo6N-QqUc_QsFXOE7yEquiZF4kLi7jRomA7g,2605
|
|
22
22
|
coach_wizards/testing_wizard.py,sha256=vKFgFG4uJfAVFmCIQbkrWNvZhIfLC6ve_XbvWZKrPg4,2563
|
|
23
|
-
empathy_framework-4.0.
|
|
23
|
+
empathy_framework-4.0.3.dist-info/licenses/LICENSE,sha256=IJ9eeI5KSrD5P7alsn7sI_6_1bDihxBA5S4Sen4jf2k,4937
|
|
24
24
|
empathy_healthcare_plugin/__init__.py,sha256=4NioL1_86UXzkd-QNkQZUSZ8rKTQGSP0TC9VXP32kQs,295
|
|
25
25
|
empathy_healthcare_plugin/monitors/__init__.py,sha256=Udp8qfZR504QAq5_eQjvtIaE7v06Yguc7nuF40KllQc,196
|
|
26
26
|
empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py,sha256=MWE5t8tW9HWZn_SNo-inx8-0nhdTNGhbcB8ZeDWyXa0,11648
|
|
@@ -44,7 +44,7 @@ empathy_llm_toolkit/levels.py,sha256=Hu9G83iY-BRyjMJKNoDNYZ9xFD0Y0LIn_XEBc5aRWx0
|
|
|
44
44
|
empathy_llm_toolkit/pattern_confidence.py,sha256=6plkrdDTb3GcjeNxohJlpeHnNWFRRcj5U76D2hvLSGA,14153
|
|
45
45
|
empathy_llm_toolkit/pattern_resolver.py,sha256=VLTeGvEDfQyDwNy5u-t18A5c0BcCpp1FqdExxfqZSlw,9292
|
|
46
46
|
empathy_llm_toolkit/pattern_summary.py,sha256=gA_rCXgfOT1Kp6FP5f1UZqXPp8_mkYXlAfTxc2lhOnc,12286
|
|
47
|
-
empathy_llm_toolkit/providers.py,sha256=
|
|
47
|
+
empathy_llm_toolkit/providers.py,sha256=GA6ENQ4i36rkxxqc7Hr0quICoRDk-d14k3IwpB7hEVI,28596
|
|
48
48
|
empathy_llm_toolkit/session_status.py,sha256=a8QPYf8Sp7jnzHkeRNOyXqoj0QwwoVwkvxPXW9qdvgc,25722
|
|
49
49
|
empathy_llm_toolkit/state.py,sha256=diLXx8QKzfucVDhbKNWej40JXQFmIeM1Qvvzg92pmjU,8030
|
|
50
50
|
empathy_llm_toolkit/agent_factory/__init__.py,sha256=Fxy-z9myQLTpn3fw2cDENItjzfq6SHuFK1PJ1lo9PaI,1471
|
|
@@ -619,7 +619,7 @@ empathy_os/orchestration/agent_templates.py,sha256=t8LxeqiTdgqYvW1BE8IXswAFamVTr
|
|
|
619
619
|
empathy_os/orchestration/config_store.py,sha256=TZLjzCr1g0nAP1eEZA9fMUy3OjF6XsWIQaJnX_PpLDY,16774
|
|
620
620
|
empathy_os/orchestration/execution_strategies.py,sha256=FT7hw9fd7sCzsSDJQDjWaOab0rlmwZ7-iNYyL1S6898,26864
|
|
621
621
|
empathy_os/orchestration/meta_orchestrator.py,sha256=lFyqXat7wULVzNkED2Uxst5Bol-JPOgUHU5U8LevIgM,21591
|
|
622
|
-
empathy_os/orchestration/real_tools.py,sha256=
|
|
622
|
+
empathy_os/orchestration/real_tools.py,sha256=NTmEOJnKgtBiFV_CjqhZnxaEtNtkqUGo2IhGvBQaDWA,31344
|
|
623
623
|
empathy_os/orchestration/.mypy_cache/3.10/@plugins_snapshot.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
|
624
624
|
empathy_os/orchestration/.mypy_cache/3.10/__future__.data.json,sha256=SqqNnGvxtlPfSpapal-LKsRZXE6ofLatZraZ3Bt0Y-o,8664
|
|
625
625
|
empathy_os/orchestration/.mypy_cache/3.10/__future__.meta.json,sha256=cNmz_rZqBL9AeasPgd57RSzR1vkqOGOLFiC-EIpMGZs,1677
|
|
@@ -4252,8 +4252,8 @@ workflow_scaffolding/__init__.py,sha256=UpX5vjjjPjIaAKyIV1D4GxJzLUZy5DzdzgSkePYM
|
|
|
4252
4252
|
workflow_scaffolding/__main__.py,sha256=0qspuNoadTDqyskXTlT8Sahqau-XIxN35NHTSGVW6z4,236
|
|
4253
4253
|
workflow_scaffolding/cli.py,sha256=yLgvMsPbqI-LHt7UKXMuj-Dc0-44EqWiChldysrw1YQ,6763
|
|
4254
4254
|
workflow_scaffolding/generator.py,sha256=9eEmm324kVzf8BCtXEML090pyke06o0U7aGATzZIaPM,8869
|
|
4255
|
-
empathy_framework-4.0.
|
|
4256
|
-
empathy_framework-4.0.
|
|
4257
|
-
empathy_framework-4.0.
|
|
4258
|
-
empathy_framework-4.0.
|
|
4259
|
-
empathy_framework-4.0.
|
|
4255
|
+
empathy_framework-4.0.3.dist-info/METADATA,sha256=K24Vew1wD5EygrAnDSf-2V1_1EZoe1fPYNZgWQJHs2M,53904
|
|
4256
|
+
empathy_framework-4.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4257
|
+
empathy_framework-4.0.3.dist-info/entry_points.txt,sha256=41rM9JgcKpkU8dr4VvPcbiPy2GQX68cEj10l3XMH0FQ,1519
|
|
4258
|
+
empathy_framework-4.0.3.dist-info/top_level.txt,sha256=wrNU1aVMutVDACer58H-udv0P_171Dv6z_42sZtZ-xM,124
|
|
4259
|
+
empathy_framework-4.0.3.dist-info/RECORD,,
|
empathy_llm_toolkit/providers.py
CHANGED
|
@@ -195,29 +195,32 @@ class AnthropicProvider(BaseLLMProvider):
|
|
|
195
195
|
|
|
196
196
|
# Add cache performance metrics if available
|
|
197
197
|
if hasattr(response.usage, "cache_creation_input_tokens"):
|
|
198
|
-
cache_creation = response.usage
|
|
199
|
-
cache_read = response.usage
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
#
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
198
|
+
cache_creation = getattr(response.usage, "cache_creation_input_tokens", 0)
|
|
199
|
+
cache_read = getattr(response.usage, "cache_read_input_tokens", 0)
|
|
200
|
+
|
|
201
|
+
# Ensure values are numeric (handle mock objects in tests)
|
|
202
|
+
if isinstance(cache_creation, int) and isinstance(cache_read, int):
|
|
203
|
+
metadata["cache_creation_tokens"] = cache_creation
|
|
204
|
+
metadata["cache_read_tokens"] = cache_read
|
|
205
|
+
|
|
206
|
+
# Log cache performance for monitoring with detailed cost savings
|
|
207
|
+
# Cache reads cost 90% less than regular input tokens
|
|
208
|
+
# Cache writes cost 25% more than regular input tokens
|
|
209
|
+
if cache_read > 0:
|
|
210
|
+
# Sonnet 4.5 input: $3/M tokens, cache read: $0.30/M tokens (90% discount)
|
|
211
|
+
savings_per_token = 0.003 / 1000 * 0.9 # 90% of regular cost
|
|
212
|
+
total_savings = cache_read * savings_per_token
|
|
213
|
+
logger.info(
|
|
214
|
+
f"Cache HIT: {cache_read:,} tokens read from cache "
|
|
215
|
+
f"(saved ${total_savings:.4f} vs full price)"
|
|
216
|
+
)
|
|
217
|
+
if cache_creation > 0:
|
|
218
|
+
# Cache write cost: $3.75/M tokens (25% markup)
|
|
219
|
+
write_cost = cache_creation * 0.00375 / 1000
|
|
220
|
+
logger.debug(
|
|
221
|
+
f"Cache WRITE: {cache_creation:,} tokens written to cache "
|
|
222
|
+
f"(cost ${write_cost:.4f})"
|
|
223
|
+
)
|
|
221
224
|
|
|
222
225
|
# Add thinking content if present
|
|
223
226
|
if thinking_content:
|
|
@@ -595,6 +595,7 @@ class RealSecurityAuditor:
|
|
|
595
595
|
target_path,
|
|
596
596
|
"-f",
|
|
597
597
|
"json",
|
|
598
|
+
"-q", # Quiet mode - suppress progress bar and log messages
|
|
598
599
|
"-ll", # Only report medium and above
|
|
599
600
|
]
|
|
600
601
|
|
|
@@ -609,9 +610,11 @@ class RealSecurityAuditor:
|
|
|
609
610
|
# Parse JSON output
|
|
610
611
|
try:
|
|
611
612
|
bandit_data = json.loads(result.stdout)
|
|
612
|
-
except json.JSONDecodeError:
|
|
613
|
-
# Bandit might not be installed
|
|
614
|
-
logger.warning("Bandit not available or returned invalid JSON")
|
|
613
|
+
except json.JSONDecodeError as e:
|
|
614
|
+
# Bandit might not be installed or JSON output malformed
|
|
615
|
+
logger.warning(f"Bandit not available or returned invalid JSON: {e}")
|
|
616
|
+
logger.debug(f"Bandit stdout: {result.stdout[:500]}")
|
|
617
|
+
logger.debug(f"Bandit stderr: {result.stderr[:500]}")
|
|
615
618
|
return SecurityReport(
|
|
616
619
|
total_issues=0,
|
|
617
620
|
critical_count=0,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|