empathy-framework 4.7.0__py3-none-any.whl → 4.8.0__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.8.0.dist-info/METADATA +753 -0
- {empathy_framework-4.7.0.dist-info → empathy_framework-4.8.0.dist-info}/RECORD +83 -37
- {empathy_framework-4.7.0.dist-info → empathy_framework-4.8.0.dist-info}/WHEEL +1 -1
- {empathy_framework-4.7.0.dist-info → empathy_framework-4.8.0.dist-info}/entry_points.txt +2 -1
- empathy_os/__init__.py +2 -0
- empathy_os/cache/hash_only.py +6 -3
- empathy_os/cache/hybrid.py +6 -3
- empathy_os/cli/__init__.py +128 -238
- empathy_os/cli/__main__.py +5 -33
- empathy_os/cli/commands/__init__.py +1 -8
- empathy_os/cli/commands/help.py +331 -0
- empathy_os/cli/commands/info.py +140 -0
- empathy_os/cli/commands/inspect.py +437 -0
- empathy_os/cli/commands/metrics.py +92 -0
- empathy_os/cli/commands/orchestrate.py +184 -0
- empathy_os/cli/commands/patterns.py +207 -0
- empathy_os/cli/commands/provider.py +93 -81
- empathy_os/cli/commands/setup.py +96 -0
- empathy_os/cli/commands/status.py +235 -0
- empathy_os/cli/commands/sync.py +166 -0
- empathy_os/cli/commands/tier.py +121 -0
- empathy_os/cli/commands/workflow.py +574 -0
- empathy_os/cli/parsers/__init__.py +62 -0
- empathy_os/cli/parsers/help.py +41 -0
- empathy_os/cli/parsers/info.py +26 -0
- empathy_os/cli/parsers/inspect.py +66 -0
- empathy_os/cli/parsers/metrics.py +42 -0
- empathy_os/cli/parsers/orchestrate.py +61 -0
- empathy_os/cli/parsers/patterns.py +54 -0
- empathy_os/cli/parsers/provider.py +40 -0
- empathy_os/cli/parsers/setup.py +42 -0
- empathy_os/cli/parsers/status.py +47 -0
- empathy_os/cli/parsers/sync.py +31 -0
- empathy_os/cli/parsers/tier.py +33 -0
- empathy_os/cli/parsers/workflow.py +77 -0
- empathy_os/cli/utils/__init__.py +1 -0
- empathy_os/cli/utils/data.py +242 -0
- empathy_os/cli/utils/helpers.py +68 -0
- empathy_os/{cli.py → cli_legacy.py} +27 -27
- empathy_os/cli_minimal.py +662 -0
- empathy_os/cli_router.py +384 -0
- empathy_os/cli_unified.py +38 -2
- empathy_os/memory/__init__.py +19 -5
- empathy_os/memory/short_term.py +14 -404
- empathy_os/memory/types.py +437 -0
- empathy_os/memory/unified.py +61 -48
- empathy_os/models/fallback.py +1 -1
- empathy_os/models/provider_config.py +59 -344
- empathy_os/models/registry.py +31 -180
- empathy_os/monitoring/alerts.py +14 -20
- empathy_os/monitoring/alerts_cli.py +24 -7
- empathy_os/project_index/__init__.py +2 -0
- empathy_os/project_index/index.py +210 -5
- empathy_os/project_index/scanner.py +45 -14
- empathy_os/project_index/scanner_parallel.py +291 -0
- empathy_os/socratic/ab_testing.py +1 -1
- empathy_os/vscode_bridge 2.py +173 -0
- empathy_os/workflows/__init__.py +31 -2
- empathy_os/workflows/base.py +349 -325
- empathy_os/workflows/bug_predict.py +8 -0
- empathy_os/workflows/builder.py +273 -0
- empathy_os/workflows/caching.py +253 -0
- empathy_os/workflows/code_review_pipeline.py +1 -0
- empathy_os/workflows/history.py +510 -0
- empathy_os/workflows/output.py +410 -0
- empathy_os/workflows/perf_audit.py +125 -19
- empathy_os/workflows/progress.py +324 -22
- empathy_os/workflows/progressive/README 2.md +454 -0
- empathy_os/workflows/progressive/__init__ 2.py +92 -0
- empathy_os/workflows/progressive/cli 2.py +242 -0
- empathy_os/workflows/progressive/core 2.py +488 -0
- empathy_os/workflows/progressive/orchestrator 2.py +701 -0
- empathy_os/workflows/progressive/reports 2.py +528 -0
- empathy_os/workflows/progressive/telemetry 2.py +280 -0
- empathy_os/workflows/progressive/test_gen 2.py +514 -0
- empathy_os/workflows/progressive/workflow 2.py +628 -0
- empathy_os/workflows/routing.py +168 -0
- empathy_os/workflows/secure_release.py +1 -0
- empathy_os/workflows/security_audit.py +190 -0
- empathy_os/workflows/security_audit_phase3.py +328 -0
- empathy_os/workflows/telemetry_mixin.py +269 -0
- empathy_framework-4.7.0.dist-info/METADATA +0 -1598
- empathy_os/dashboard/__init__.py +0 -15
- empathy_os/dashboard/server.py +0 -941
- {empathy_framework-4.7.0.dist-info → empathy_framework-4.8.0.dist-info}/licenses/LICENSE +0 -0
- {empathy_framework-4.7.0.dist-info → empathy_framework-4.8.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,753 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: empathy-framework
|
|
3
|
+
Version: 4.8.0
|
|
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 (6 patterns), intelligent caching (85% hit rate), semantic workflow discovery, visual workflow editor, MCP integration for Claude Code, and multi-agent orchestration.
|
|
5
|
+
Author-email: Patrick Roebuck <admin@smartaimemory.com>
|
|
6
|
+
Maintainer-email: Smart-AI-Memory <admin@smartaimemory.com>
|
|
7
|
+
License: # Fair Source License, version 0.9
|
|
8
|
+
|
|
9
|
+
**Copyright © 2025 Deep Study AI, LLC**
|
|
10
|
+
|
|
11
|
+
## Grant of Rights
|
|
12
|
+
|
|
13
|
+
**Licensor:** Deep Study AI, LLC
|
|
14
|
+
**Licensed Work:** Empathy
|
|
15
|
+
**Change Date:** January 1, 2029 (4 years from first release)
|
|
16
|
+
**Change License:** Apache License 2.0
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Terms
|
|
21
|
+
|
|
22
|
+
### Grant of Use
|
|
23
|
+
|
|
24
|
+
Subject to the conditions below, Licensor grants you a non-exclusive, worldwide, royalty-free license to:
|
|
25
|
+
|
|
26
|
+
- Use the Licensed Work
|
|
27
|
+
- Modify the Licensed Work
|
|
28
|
+
- Create derivative works
|
|
29
|
+
- Distribute copies (subject to restrictions)
|
|
30
|
+
|
|
31
|
+
### Usage Limits - Free Tier
|
|
32
|
+
|
|
33
|
+
You may use the Licensed Work **free of charge** if you meet ANY of these conditions:
|
|
34
|
+
|
|
35
|
+
1. **Educational Use:** You are a student or educator using the Licensed Work for educational purposes
|
|
36
|
+
2. **Small Business:** Your organization has **5 or fewer total employees**
|
|
37
|
+
3. **Personal/Research:** You are using the Licensed Work for personal projects or academic research
|
|
38
|
+
4. **Evaluation:** You are evaluating the Licensed Work for up to 30 days
|
|
39
|
+
|
|
40
|
+
### Usage Limits - Commercial License Required
|
|
41
|
+
|
|
42
|
+
A **Commercial License is REQUIRED** if:
|
|
43
|
+
|
|
44
|
+
1. Your organization has **6 or more employees**, AND
|
|
45
|
+
2. You are using the Licensed Work in a production environment, OR
|
|
46
|
+
3. You are using the Licensed Work to provide services to third parties
|
|
47
|
+
|
|
48
|
+
**Commercial License:** $99 USD per developer per year
|
|
49
|
+
|
|
50
|
+
- "Developer" means any employee, contractor, or agent who uses, modifies, or deploys the Licensed Work
|
|
51
|
+
- One license covers all environments (development, staging, production, CI/CD)
|
|
52
|
+
- License includes updates and support
|
|
53
|
+
- Purchase at: https://smartaimemory.com/empathy-framework/pricing
|
|
54
|
+
|
|
55
|
+
### Restrictions
|
|
56
|
+
|
|
57
|
+
You may NOT:
|
|
58
|
+
|
|
59
|
+
1. **Remove or modify** licensing, copyright notices, or attribution
|
|
60
|
+
2. **Circumvent** the usage limits or commercial license requirements
|
|
61
|
+
3. **Offer as a managed service** without a separate reseller agreement
|
|
62
|
+
4. **Sublicense, sell, or rent** the Licensed Work to third parties
|
|
63
|
+
5. **Use the Licensed Work** in violation of applicable laws
|
|
64
|
+
|
|
65
|
+
### Source Code Availability
|
|
66
|
+
|
|
67
|
+
The source code for the Licensed Work is available at:
|
|
68
|
+
https://github.com/Smart-AI-Memory/empathy
|
|
69
|
+
|
|
70
|
+
You may view, inspect, and audit the source code for:
|
|
71
|
+
- Security review
|
|
72
|
+
- Compliance verification
|
|
73
|
+
- Understanding implementation
|
|
74
|
+
- Creating derivative works (subject to this license)
|
|
75
|
+
|
|
76
|
+
### Attribution
|
|
77
|
+
|
|
78
|
+
If you distribute the Licensed Work or derivative works, you must:
|
|
79
|
+
|
|
80
|
+
1. Include this license file
|
|
81
|
+
2. Provide attribution to "Deep Study AI, LLC - Empathy"
|
|
82
|
+
3. Include a link to https://github.com/Smart-AI-Memory/empathy
|
|
83
|
+
|
|
84
|
+
### Warranty Disclaimer
|
|
85
|
+
|
|
86
|
+
THE LICENSED WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
|
87
|
+
|
|
88
|
+
### Liability Limitation
|
|
89
|
+
|
|
90
|
+
IN NO EVENT SHALL LICENSOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE LICENSED WORK.
|
|
91
|
+
|
|
92
|
+
### Change Date Conversion
|
|
93
|
+
|
|
94
|
+
On the Change Date (January 1, 2029), this license automatically converts to the Change License (Apache License 2.0), and all restrictions in this Fair Source License no longer apply.
|
|
95
|
+
|
|
96
|
+
**Rationale:** After 4 years, the Licensed Work becomes fully open source, allowing maximum community benefit while protecting Licensor's commercial interests during the critical growth period.
|
|
97
|
+
|
|
98
|
+
### Verification Rights
|
|
99
|
+
|
|
100
|
+
Licensor reserves the right to:
|
|
101
|
+
|
|
102
|
+
1. Request verification of compliance with usage limits
|
|
103
|
+
2. Audit use of the Licensed Work with reasonable notice
|
|
104
|
+
3. Terminate licenses for violations after 30-day cure period
|
|
105
|
+
|
|
106
|
+
### Commercial License Purchase
|
|
107
|
+
|
|
108
|
+
To purchase a Commercial License:
|
|
109
|
+
|
|
110
|
+
1. Visit: https://smartaimemory.com/empathy-framework/pricing
|
|
111
|
+
2. Email: admin@smartaimemory.com
|
|
112
|
+
3. Complete order form and payment
|
|
113
|
+
4. Receive license key and invoice
|
|
114
|
+
|
|
115
|
+
Volume discounts available for teams of 20+ developers.
|
|
116
|
+
|
|
117
|
+
### Definitions
|
|
118
|
+
|
|
119
|
+
- **Employee:** Any W-2 employee, 1099 contractor working >20 hours/week, or intern
|
|
120
|
+
- **Production Environment:** Any environment serving end users or customers
|
|
121
|
+
- **Developer:** Any person who uses, modifies, or deploys the Licensed Work
|
|
122
|
+
- **Organization:** The legal entity employing you, or yourself if self-employed
|
|
123
|
+
|
|
124
|
+
### Questions?
|
|
125
|
+
|
|
126
|
+
For licensing questions, contact: licensing@smartaimemory.com
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Why Fair Source?
|
|
131
|
+
|
|
132
|
+
This license balances:
|
|
133
|
+
|
|
134
|
+
✅ **Free for small teams** - Students, educators, and small businesses (≤5 employees) use free forever
|
|
135
|
+
✅ **Source code visibility** - Review code for security, compliance, learning
|
|
136
|
+
✅ **Commercial sustainability** - Larger organizations pay to fund development
|
|
137
|
+
✅ **Future open source** - Automatically becomes Apache 2.0 in 4 years
|
|
138
|
+
|
|
139
|
+
We believe software should be inspectable and accessible while ensuring sustainable development.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
**Version:** 0.9
|
|
144
|
+
**Last Updated:** November 7, 2025
|
|
145
|
+
**Effective Date:** January 1, 2025
|
|
146
|
+
|
|
147
|
+
Project-URL: Homepage, https://www.smartaimemory.com
|
|
148
|
+
Project-URL: Documentation, https://www.smartaimemory.com/framework-docs/
|
|
149
|
+
Project-URL: Getting Started, https://www.smartaimemory.com/framework-docs/tutorials/quickstart/
|
|
150
|
+
Project-URL: FAQ, https://www.smartaimemory.com/framework-docs/reference/FAQ/
|
|
151
|
+
Project-URL: Book, https://www.smartaimemory.com/book
|
|
152
|
+
Project-URL: Repository, https://github.com/Smart-AI-Memory/empathy-framework
|
|
153
|
+
Project-URL: Issues, https://github.com/Smart-AI-Memory/empathy-framework/issues
|
|
154
|
+
Project-URL: Discussions, https://github.com/Smart-AI-Memory/empathy-framework/discussions
|
|
155
|
+
Project-URL: Changelog, https://github.com/Smart-AI-Memory/empathy-framework/blob/main/CHANGELOG.md
|
|
156
|
+
Keywords: ai,collaboration,empathy,anticipatory-ai,systems-thinking,llm,claude,memdocs,level-5-ai,code-inspection,static-analysis,code-quality,sarif,github-actions,developer-tools
|
|
157
|
+
Classifier: Development Status :: 4 - Beta
|
|
158
|
+
Classifier: Intended Audience :: Developers
|
|
159
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
160
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
161
|
+
Classifier: Programming Language :: Python :: 3
|
|
162
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
163
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
164
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
165
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
166
|
+
Classifier: Operating System :: OS Independent
|
|
167
|
+
Requires-Python: >=3.10
|
|
168
|
+
Description-Content-Type: text/markdown
|
|
169
|
+
License-File: LICENSE
|
|
170
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
171
|
+
Requires-Dist: typing-extensions<5.0.0,>=4.0.0
|
|
172
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
|
173
|
+
Requires-Dist: structlog<25.0.0,>=23.0.0
|
|
174
|
+
Requires-Dist: defusedxml<1.0.0,>=0.7.0
|
|
175
|
+
Requires-Dist: rich<14.0.0,>=13.0.0
|
|
176
|
+
Requires-Dist: typer<1.0.0,>=0.9.0
|
|
177
|
+
Requires-Dist: pyyaml<7.0,>=6.0
|
|
178
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0
|
|
179
|
+
Provides-Extra: anthropic
|
|
180
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "anthropic"
|
|
181
|
+
Provides-Extra: openai
|
|
182
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "openai"
|
|
183
|
+
Provides-Extra: google
|
|
184
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "google"
|
|
185
|
+
Provides-Extra: llm
|
|
186
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "llm"
|
|
187
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "llm"
|
|
188
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "llm"
|
|
189
|
+
Provides-Extra: memdocs
|
|
190
|
+
Requires-Dist: memdocs>=1.0.0; extra == "memdocs"
|
|
191
|
+
Provides-Extra: agents
|
|
192
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "agents"
|
|
193
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "agents"
|
|
194
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "agents"
|
|
195
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "agents"
|
|
196
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "agents"
|
|
197
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "agents"
|
|
198
|
+
Provides-Extra: crewai
|
|
199
|
+
Requires-Dist: crewai<1.0.0,>=0.1.0; extra == "crewai"
|
|
200
|
+
Requires-Dist: langchain<2.0.0,>=0.1.0; extra == "crewai"
|
|
201
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.6; extra == "crewai"
|
|
202
|
+
Provides-Extra: cache
|
|
203
|
+
Requires-Dist: sentence-transformers<4.0.0,>=2.0.0; extra == "cache"
|
|
204
|
+
Requires-Dist: torch<3.0.0,>=2.0.0; extra == "cache"
|
|
205
|
+
Requires-Dist: numpy<3.0.0,>=1.24.0; extra == "cache"
|
|
206
|
+
Provides-Extra: healthcare
|
|
207
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "healthcare"
|
|
208
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "healthcare"
|
|
209
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "healthcare"
|
|
210
|
+
Requires-Dist: memdocs>=1.0.0; extra == "healthcare"
|
|
211
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "healthcare"
|
|
212
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "healthcare"
|
|
213
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "healthcare"
|
|
214
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "healthcare"
|
|
215
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "healthcare"
|
|
216
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "healthcare"
|
|
217
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "healthcare"
|
|
218
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "healthcare"
|
|
219
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "healthcare"
|
|
220
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "healthcare"
|
|
221
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "healthcare"
|
|
222
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "healthcare"
|
|
223
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "healthcare"
|
|
224
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "healthcare"
|
|
225
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "healthcare"
|
|
226
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "healthcare"
|
|
227
|
+
Requires-Dist: redis<6.0.0,>=5.0.0; extra == "healthcare"
|
|
228
|
+
Provides-Extra: software
|
|
229
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "software"
|
|
230
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "software"
|
|
231
|
+
Provides-Extra: backend
|
|
232
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "backend"
|
|
233
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "backend"
|
|
234
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "backend"
|
|
235
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "backend"
|
|
236
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "backend"
|
|
237
|
+
Provides-Extra: lsp
|
|
238
|
+
Requires-Dist: pygls<2.0.0,>=1.0.0; extra == "lsp"
|
|
239
|
+
Requires-Dist: lsprotocol<2024.0.0,>=2023.0.0; extra == "lsp"
|
|
240
|
+
Provides-Extra: windows
|
|
241
|
+
Requires-Dist: colorama<1.0.0,>=0.4.6; extra == "windows"
|
|
242
|
+
Provides-Extra: otel
|
|
243
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "otel"
|
|
244
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "otel"
|
|
245
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "otel"
|
|
246
|
+
Provides-Extra: docs
|
|
247
|
+
Requires-Dist: mkdocs<2.0.0,>=1.5.0; extra == "docs"
|
|
248
|
+
Requires-Dist: mkdocs-material<10.0.0,>=9.4.0; extra == "docs"
|
|
249
|
+
Requires-Dist: mkdocstrings[python]<1.0.0,>=0.24.0; extra == "docs"
|
|
250
|
+
Requires-Dist: mkdocs-with-pdf<1.0.0,>=0.9.3; extra == "docs"
|
|
251
|
+
Requires-Dist: pymdown-extensions<11.0,>=10.0; extra == "docs"
|
|
252
|
+
Provides-Extra: dev
|
|
253
|
+
Requires-Dist: pytest<10.0,>=7.0; extra == "dev"
|
|
254
|
+
Requires-Dist: pytest-asyncio<2.0,>=0.21; extra == "dev"
|
|
255
|
+
Requires-Dist: pytest-cov<8.0,>=4.0; extra == "dev"
|
|
256
|
+
Requires-Dist: pytest-xdist<4.0,>=3.5.0; extra == "dev"
|
|
257
|
+
Requires-Dist: pytest-testmon<3.0,>=2.1.0; extra == "dev"
|
|
258
|
+
Requires-Dist: pytest-picked<1.0,>=0.5.0; extra == "dev"
|
|
259
|
+
Requires-Dist: black<26.0,>=24.3.0; extra == "dev"
|
|
260
|
+
Requires-Dist: mypy<2.0,>=1.0; extra == "dev"
|
|
261
|
+
Requires-Dist: ruff<1.0,>=0.1; extra == "dev"
|
|
262
|
+
Requires-Dist: coverage<8.0,>=7.0; extra == "dev"
|
|
263
|
+
Requires-Dist: bandit<2.0,>=1.7; extra == "dev"
|
|
264
|
+
Requires-Dist: pre-commit<5.0,>=3.0; extra == "dev"
|
|
265
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "dev"
|
|
266
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "dev"
|
|
267
|
+
Requires-Dist: requests<3.0.0,>=2.28.0; extra == "dev"
|
|
268
|
+
Provides-Extra: developer
|
|
269
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "developer"
|
|
270
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "developer"
|
|
271
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "developer"
|
|
272
|
+
Requires-Dist: memdocs>=1.0.0; extra == "developer"
|
|
273
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "developer"
|
|
274
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "developer"
|
|
275
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "developer"
|
|
276
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "developer"
|
|
277
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "developer"
|
|
278
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "developer"
|
|
279
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "developer"
|
|
280
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "developer"
|
|
281
|
+
Provides-Extra: enterprise
|
|
282
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "enterprise"
|
|
283
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "enterprise"
|
|
284
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "enterprise"
|
|
285
|
+
Requires-Dist: memdocs>=1.0.0; extra == "enterprise"
|
|
286
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "enterprise"
|
|
287
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "enterprise"
|
|
288
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "enterprise"
|
|
289
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "enterprise"
|
|
290
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "enterprise"
|
|
291
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "enterprise"
|
|
292
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "enterprise"
|
|
293
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "enterprise"
|
|
294
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "enterprise"
|
|
295
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "enterprise"
|
|
296
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "enterprise"
|
|
297
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "enterprise"
|
|
298
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "enterprise"
|
|
299
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "enterprise"
|
|
300
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "enterprise"
|
|
301
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "enterprise"
|
|
302
|
+
Provides-Extra: full
|
|
303
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "full"
|
|
304
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "full"
|
|
305
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "full"
|
|
306
|
+
Requires-Dist: memdocs>=1.0.0; extra == "full"
|
|
307
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "full"
|
|
308
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "full"
|
|
309
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "full"
|
|
310
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "full"
|
|
311
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "full"
|
|
312
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "full"
|
|
313
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "full"
|
|
314
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "full"
|
|
315
|
+
Provides-Extra: all
|
|
316
|
+
Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "all"
|
|
317
|
+
Requires-Dist: openai<2.0.0,>=1.12.0; extra == "all"
|
|
318
|
+
Requires-Dist: google-generativeai<1.0.0,>=0.3.0; extra == "all"
|
|
319
|
+
Requires-Dist: memdocs>=1.0.0; extra == "all"
|
|
320
|
+
Requires-Dist: langchain<2.0.0,>=1.0.0; extra == "all"
|
|
321
|
+
Requires-Dist: langchain-core<2.0.0,>=1.2.5; extra == "all"
|
|
322
|
+
Requires-Dist: langchain-text-splitters<0.4.0,>=0.3.9; extra == "all"
|
|
323
|
+
Requires-Dist: langgraph<2.0.0,>=1.0.0; extra == "all"
|
|
324
|
+
Requires-Dist: langgraph-checkpoint<4.0.0,>=3.0.0; extra == "all"
|
|
325
|
+
Requires-Dist: marshmallow<5.0.0,>=4.1.2; extra == "all"
|
|
326
|
+
Requires-Dist: python-docx<1.0.0,>=0.8.11; extra == "all"
|
|
327
|
+
Requires-Dist: pyyaml<7.0,>=6.0; extra == "all"
|
|
328
|
+
Requires-Dist: fastapi<1.0.0,>=0.109.1; extra == "all"
|
|
329
|
+
Requires-Dist: uvicorn<1.0.0,>=0.20.0; extra == "all"
|
|
330
|
+
Requires-Dist: starlette<1.0.0,>=0.40.0; extra == "all"
|
|
331
|
+
Requires-Dist: bcrypt<5.0.0,>=4.0.0; extra == "all"
|
|
332
|
+
Requires-Dist: PyJWT[crypto]>=2.8.0; extra == "all"
|
|
333
|
+
Requires-Dist: pygls<2.0.0,>=1.0.0; extra == "all"
|
|
334
|
+
Requires-Dist: lsprotocol<2024.0.0,>=2023.0.0; extra == "all"
|
|
335
|
+
Requires-Dist: colorama<1.0.0,>=0.4.6; extra == "all"
|
|
336
|
+
Requires-Dist: opentelemetry-api<2.0.0,>=1.20.0; extra == "all"
|
|
337
|
+
Requires-Dist: opentelemetry-sdk<2.0.0,>=1.20.0; extra == "all"
|
|
338
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2.0.0,>=1.20.0; extra == "all"
|
|
339
|
+
Requires-Dist: mkdocs<2.0.0,>=1.5.0; extra == "all"
|
|
340
|
+
Requires-Dist: mkdocs-material<10.0.0,>=9.4.0; extra == "all"
|
|
341
|
+
Requires-Dist: mkdocstrings[python]<1.0.0,>=0.24.0; extra == "all"
|
|
342
|
+
Requires-Dist: mkdocs-with-pdf<1.0.0,>=0.9.3; extra == "all"
|
|
343
|
+
Requires-Dist: pymdown-extensions<11.0,>=10.0; extra == "all"
|
|
344
|
+
Requires-Dist: pytest<9.0,>=7.0; extra == "all"
|
|
345
|
+
Requires-Dist: pytest-asyncio<1.0,>=0.21; extra == "all"
|
|
346
|
+
Requires-Dist: pytest-cov<5.0,>=4.0; extra == "all"
|
|
347
|
+
Requires-Dist: black<26.0,>=24.3.0; extra == "all"
|
|
348
|
+
Requires-Dist: mypy<2.0,>=1.0; extra == "all"
|
|
349
|
+
Requires-Dist: ruff<1.0,>=0.1; extra == "all"
|
|
350
|
+
Requires-Dist: coverage<8.0,>=7.0; extra == "all"
|
|
351
|
+
Requires-Dist: bandit<2.0,>=1.7; extra == "all"
|
|
352
|
+
Requires-Dist: pre-commit<4.0,>=3.0; extra == "all"
|
|
353
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "all"
|
|
354
|
+
Requires-Dist: urllib3<3.0.0,>=2.3.0; extra == "all"
|
|
355
|
+
Requires-Dist: aiohttp<4.0.0,>=3.10.0; extra == "all"
|
|
356
|
+
Requires-Dist: filelock<4.0.0,>=3.16.0; extra == "all"
|
|
357
|
+
Dynamic: license-file
|
|
358
|
+
|
|
359
|
+
# Empathy Framework
|
|
360
|
+
|
|
361
|
+
**AI-powered developer workflows with cost optimization and pattern learning.**
|
|
362
|
+
|
|
363
|
+
Run code review, debugging, testing, and release workflows from your terminal or Claude Code. Smart tier routing saves 34-86% on LLM costs.
|
|
364
|
+
|
|
365
|
+
[](https://pypi.org/project/empathy-framework/)
|
|
366
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework/actions)
|
|
367
|
+
[](https://github.com/Smart-AI-Memory/empathy-framework)
|
|
368
|
+
[](https://www.python.org)
|
|
369
|
+
[](LICENSE)
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
pip install empathy-framework[developer]
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 🎯 Transitioning to Claude-Native Architecture
|
|
378
|
+
|
|
379
|
+
**Empathy Framework is evolving to focus exclusively on Anthropic/Claude** to unlock features impossible with multi-provider abstraction:
|
|
380
|
+
|
|
381
|
+
- **📦 Prompt Caching:** 90% cost reduction on repeated prompts
|
|
382
|
+
- **📖 200K Context:** Largest context window available (vs 128K for competitors)
|
|
383
|
+
- **🧠 Extended Thinking:** See Claude's internal reasoning process
|
|
384
|
+
- **🔧 Advanced Tool Use:** Optimized for agentic workflows
|
|
385
|
+
|
|
386
|
+
**Timeline:**
|
|
387
|
+
- ✅ **v4.8.0 (Jan 2026):** Deprecation warnings for OpenAI/Google/Ollama providers
|
|
388
|
+
- ✅ **v5.0.0 (Jan 26, 2026):** Non-Anthropic providers removed (BREAKING - COMPLETE)
|
|
389
|
+
- 🎯 **v5.1.0 (Feb 2026):** Prompt caching enabled by default
|
|
390
|
+
|
|
391
|
+
**Migration Guide:** [docs/CLAUDE_NATIVE.md](docs/CLAUDE_NATIVE.md)
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## What's New in v4.8.0
|
|
396
|
+
|
|
397
|
+
**🚀 Scanner Performance Optimizations** - **3.65x faster** project scanning with parallel processing and incremental updates:
|
|
398
|
+
|
|
399
|
+
- **Parallel Processing:** Multi-core scanning enabled by default (2x faster)
|
|
400
|
+
- **Incremental Scanning:** Git diff-based updates (10x faster for typical changes)
|
|
401
|
+
- **Optional Dependencies:** Skip dependency analysis for 27% speedup
|
|
402
|
+
|
|
403
|
+
**📊 Real-World Performance:**
|
|
404
|
+
|
|
405
|
+
- Full scan: 3,472 files in 1.8s (was 3.6s)
|
|
406
|
+
- Incremental: 100 changed files in 0.3s (was 1.0s)
|
|
407
|
+
|
|
408
|
+
[See performance guide](docs/SCANNER_OPTIMIZATIONS.md) | [Examples](examples/scanner_usage.py)
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## What's New in v4.7.0
|
|
413
|
+
|
|
414
|
+
**$0 Workflows via Skills** - Multi-agent workflows run through Claude Code's Task tool instead of API calls. No additional cost with your Claude subscription.
|
|
415
|
+
|
|
416
|
+
**Socratic Workflows** - Interactive discovery through guided questions. Workflows ask what you need rather than requiring upfront configuration.
|
|
417
|
+
|
|
418
|
+
**Security Hardened** - Fixed critical vulnerabilities (path traversal, JWT, SSRF).
|
|
419
|
+
|
|
420
|
+
**Hub-Based Commands** - Organized workflows into intuitive command hubs.
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Quick Start
|
|
425
|
+
|
|
426
|
+
### 1. Install
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
pip install empathy-framework[developer]
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### 2. Configure
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
# Auto-detect API keys
|
|
436
|
+
python -m empathy_os.models.cli provider
|
|
437
|
+
|
|
438
|
+
# Or set explicitly
|
|
439
|
+
python -m empathy_os.models.cli provider --set anthropic
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### 3. Use
|
|
443
|
+
|
|
444
|
+
**In Claude Code:**
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
/dev # Developer tools (debug, commit, PR, review)
|
|
448
|
+
/testing # Run tests, coverage, benchmarks
|
|
449
|
+
/docs # Documentation generation
|
|
450
|
+
/release # Release preparation
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
**CLI:**
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
empathy workflow run security-audit --path ./src
|
|
457
|
+
empathy workflow run test-coverage --target 90
|
|
458
|
+
empathy telemetry show # View cost savings
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Python:**
|
|
462
|
+
|
|
463
|
+
```python
|
|
464
|
+
from empathy_os import EmpathyOS
|
|
465
|
+
|
|
466
|
+
async with EmpathyOS() as empathy:
|
|
467
|
+
result = await empathy.level_2_guided(
|
|
468
|
+
"Review this code for security issues"
|
|
469
|
+
)
|
|
470
|
+
print(result["response"])
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Command Hubs
|
|
476
|
+
|
|
477
|
+
Workflows are organized into hubs for easy discovery:
|
|
478
|
+
|
|
479
|
+
| Hub | Command | Description |
|
|
480
|
+
| ----------------- | ------------ | -------------------------------------------- |
|
|
481
|
+
| **Developer** | `/dev` | Debug, commit, PR, code review, quality |
|
|
482
|
+
| **Testing** | `/testing` | Run tests, coverage analysis, benchmarks |
|
|
483
|
+
| **Documentation** | `/docs` | Generate and manage documentation |
|
|
484
|
+
| **Release** | `/release` | Release prep, security scan, publishing |
|
|
485
|
+
| **Workflow** | `/workflow` | Planning, TDD, refactoring workflows |
|
|
486
|
+
| **Utilities** | `/utilities` | Project init, dependencies, profiling |
|
|
487
|
+
| **Learning** | `/learning` | Pattern learning and session evaluation |
|
|
488
|
+
| **Context** | `/context` | State management and memory |
|
|
489
|
+
| **Agent** | `/agent` | Create and manage custom agents |
|
|
490
|
+
|
|
491
|
+
**Example usage:**
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
/dev # Show interactive menu
|
|
495
|
+
/dev "debug auth error" # Jump directly to debugging
|
|
496
|
+
/testing "run coverage" # Run coverage analysis
|
|
497
|
+
/release # Start release preparation
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
## Socratic Method
|
|
503
|
+
|
|
504
|
+
Workflows guide you through discovery instead of requiring upfront configuration:
|
|
505
|
+
|
|
506
|
+
```text
|
|
507
|
+
You: /dev
|
|
508
|
+
|
|
509
|
+
Claude: What development task do you need?
|
|
510
|
+
1. Debug issue
|
|
511
|
+
2. Create commit
|
|
512
|
+
3. PR workflow
|
|
513
|
+
4. Quality check
|
|
514
|
+
|
|
515
|
+
You: 1
|
|
516
|
+
|
|
517
|
+
Claude: What error or unexpected behavior are you seeing?
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
**How it works:**
|
|
521
|
+
|
|
522
|
+
1. **Discovery** - Workflow asks targeted questions to understand your needs
|
|
523
|
+
2. **Context gathering** - Collects relevant code, errors, and constraints
|
|
524
|
+
3. **Dynamic agent creation** - Assembles the right team based on your answers
|
|
525
|
+
4. **Execution** - Runs with appropriate tier selection
|
|
526
|
+
|
|
527
|
+
**Create custom agents with Socratic guidance:**
|
|
528
|
+
|
|
529
|
+
```bash
|
|
530
|
+
/agent create # Guided agent creation
|
|
531
|
+
/agent team # Build multi-agent teams interactively
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
## Cost Optimization
|
|
537
|
+
|
|
538
|
+
### Skills = $0 (Claude Code)
|
|
539
|
+
|
|
540
|
+
When using Claude Code, workflows run as skills through the Task tool - **no API costs**:
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
/dev # $0 - uses your Claude subscription
|
|
544
|
+
/testing # $0
|
|
545
|
+
/release # $0
|
|
546
|
+
/agent create # $0
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
### API Mode (CI/CD, Automation)
|
|
550
|
+
|
|
551
|
+
For programmatic use, smart tier routing saves 34-86%:
|
|
552
|
+
|
|
553
|
+
| Tier | Model | Use Case | Cost |
|
|
554
|
+
| ------- | ------------------- | --------------------------- | ----------- |
|
|
555
|
+
| CHEAP | Haiku / GPT-4o-mini | Formatting, simple tasks | ~$0.005 |
|
|
556
|
+
| CAPABLE | Sonnet / GPT-4o | Bug fixes, code review | ~$0.08 |
|
|
557
|
+
| PREMIUM | Opus / o1 | Architecture, complex design | ~$0.45 |
|
|
558
|
+
|
|
559
|
+
```bash
|
|
560
|
+
# Track API usage and savings
|
|
561
|
+
empathy telemetry savings --days 30
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
## Key Features
|
|
567
|
+
|
|
568
|
+
### Multi-Agent Workflows
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
# 4 parallel agents check release readiness
|
|
572
|
+
empathy orchestrate release-prep
|
|
573
|
+
|
|
574
|
+
# Sequential coverage improvement
|
|
575
|
+
empathy orchestrate test-coverage --target 90
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
### Response Caching
|
|
579
|
+
|
|
580
|
+
Up to 57% cache hit rate on similar prompts. Zero config needed.
|
|
581
|
+
|
|
582
|
+
```python
|
|
583
|
+
from empathy_os.workflows import SecurityAuditWorkflow
|
|
584
|
+
|
|
585
|
+
workflow = SecurityAuditWorkflow(enable_cache=True)
|
|
586
|
+
result = await workflow.execute(target_path="./src")
|
|
587
|
+
print(f"Cache hit rate: {result.cost_report.cache_hit_rate:.1f}%")
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Pattern Learning
|
|
591
|
+
|
|
592
|
+
Workflows learn from outcomes and improve over time:
|
|
593
|
+
|
|
594
|
+
```python
|
|
595
|
+
from empathy_os.orchestration.config_store import ConfigurationStore
|
|
596
|
+
|
|
597
|
+
store = ConfigurationStore()
|
|
598
|
+
best = store.get_best_for_task("release_prep")
|
|
599
|
+
print(f"Success rate: {best.success_rate:.1%}")
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
### Multi-Provider Support
|
|
603
|
+
|
|
604
|
+
```python
|
|
605
|
+
from empathy_llm_toolkit.providers import (
|
|
606
|
+
AnthropicProvider, # Claude
|
|
607
|
+
OpenAIProvider, # GPT-4
|
|
608
|
+
GeminiProvider, # Gemini
|
|
609
|
+
LocalProvider, # Ollama, LM Studio
|
|
610
|
+
)
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
---
|
|
614
|
+
|
|
615
|
+
## CLI Reference
|
|
616
|
+
|
|
617
|
+
```bash
|
|
618
|
+
# Provider configuration
|
|
619
|
+
python -m empathy_os.models.cli provider
|
|
620
|
+
python -m empathy_os.models.cli provider --set hybrid
|
|
621
|
+
|
|
622
|
+
# Workflows
|
|
623
|
+
empathy workflow list
|
|
624
|
+
empathy workflow run <workflow-name>
|
|
625
|
+
|
|
626
|
+
# Cost tracking
|
|
627
|
+
empathy telemetry show
|
|
628
|
+
empathy telemetry savings --days 30
|
|
629
|
+
empathy telemetry export --format csv
|
|
630
|
+
|
|
631
|
+
# Orchestration
|
|
632
|
+
empathy orchestrate release-prep
|
|
633
|
+
empathy orchestrate test-coverage --target 90
|
|
634
|
+
|
|
635
|
+
# Meta-workflows
|
|
636
|
+
empathy meta-workflow list
|
|
637
|
+
empathy meta-workflow run release-prep --real
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
---
|
|
641
|
+
|
|
642
|
+
## Install Options
|
|
643
|
+
|
|
644
|
+
```bash
|
|
645
|
+
# Individual developers (recommended)
|
|
646
|
+
pip install empathy-framework[developer]
|
|
647
|
+
|
|
648
|
+
# All LLM providers
|
|
649
|
+
pip install empathy-framework[llm]
|
|
650
|
+
|
|
651
|
+
# With caching (semantic similarity)
|
|
652
|
+
pip install empathy-framework[cache]
|
|
653
|
+
|
|
654
|
+
# Enterprise (auth, rate limiting)
|
|
655
|
+
pip install empathy-framework[enterprise]
|
|
656
|
+
|
|
657
|
+
# Healthcare (HIPAA compliance)
|
|
658
|
+
pip install empathy-framework[healthcare]
|
|
659
|
+
|
|
660
|
+
# Development
|
|
661
|
+
git clone https://github.com/Smart-AI-Memory/empathy-framework.git
|
|
662
|
+
cd empathy-framework && pip install -e .[dev]
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
---
|
|
666
|
+
|
|
667
|
+
## Environment Setup
|
|
668
|
+
|
|
669
|
+
```bash
|
|
670
|
+
# At least one provider required
|
|
671
|
+
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
672
|
+
export OPENAI_API_KEY="sk-..."
|
|
673
|
+
export GOOGLE_API_KEY="..."
|
|
674
|
+
|
|
675
|
+
# Optional: Redis for memory
|
|
676
|
+
export REDIS_URL="redis://localhost:6379"
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
---
|
|
680
|
+
|
|
681
|
+
## VSCode Extension
|
|
682
|
+
|
|
683
|
+
Install the Empathy VSCode extension for:
|
|
684
|
+
|
|
685
|
+
- **Dashboard** - Health score, costs, patterns
|
|
686
|
+
- **One-Click Workflows** - Run from command palette
|
|
687
|
+
- **Memory Panel** - Manage Redis and patterns
|
|
688
|
+
- **Cost Tracking** - Real-time savings display
|
|
689
|
+
|
|
690
|
+
---
|
|
691
|
+
|
|
692
|
+
## Documentation
|
|
693
|
+
|
|
694
|
+
- [Quick Start Guide](docs/quickstart.md)
|
|
695
|
+
- [CLI Reference](docs/cli-reference.md)
|
|
696
|
+
- [Testing Guide](docs/testing-guide.md)
|
|
697
|
+
- [Keyboard Shortcuts](docs/keyboard-shortcuts.md)
|
|
698
|
+
- [Full Documentation](https://smartaimemory.com/framework-docs/)
|
|
699
|
+
|
|
700
|
+
---
|
|
701
|
+
|
|
702
|
+
## Security
|
|
703
|
+
|
|
704
|
+
- Path traversal protection on all file operations
|
|
705
|
+
- JWT authentication with rate limiting
|
|
706
|
+
- PII scrubbing in telemetry
|
|
707
|
+
- HIPAA/GDPR compliance options
|
|
708
|
+
- **Automated security scanning** with 82% accuracy (Phase 3 AST-based detection)
|
|
709
|
+
|
|
710
|
+
See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
711
|
+
|
|
712
|
+
### Security Scanning
|
|
713
|
+
|
|
714
|
+
**Automated security scanning in CI/CD** - 82% accuracy, blocks critical issues:
|
|
715
|
+
|
|
716
|
+
```bash
|
|
717
|
+
# Run security audit locally
|
|
718
|
+
empathy workflow run security-audit
|
|
719
|
+
|
|
720
|
+
# Scan specific directory
|
|
721
|
+
empathy workflow run security-audit --input '{"path":"./src"}'
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
**Documentation:**
|
|
725
|
+
|
|
726
|
+
- **[Developer Workflow Guide](docs/DEVELOPER_SECURITY_WORKFLOW.md)** - Quick reference for handling security findings (all developers)
|
|
727
|
+
- **[CI/CD Integration Guide](docs/CI_SECURITY_SCANNING.md)** - Complete setup and troubleshooting (DevOps, developers)
|
|
728
|
+
- **[Scanner Architecture](docs/SECURITY_SCANNER_ARCHITECTURE.md)** - Technical implementation details (engineers, architects)
|
|
729
|
+
- **[Remediation Process](docs/SECURITY_REMEDIATION_PROCESS.md)** - 3-phase methodology for improving scanners (security teams, leadership)
|
|
730
|
+
- **[API Reference](docs/api-reference/security-scanner.md)** - Complete API documentation (developers extending scanner)
|
|
731
|
+
|
|
732
|
+
**Key achievements:**
|
|
733
|
+
|
|
734
|
+
- 82.3% reduction in false positives (350 → 62 findings)
|
|
735
|
+
- 16x improvement in scanner accuracy
|
|
736
|
+
- <15 minute average fix time for critical issues
|
|
737
|
+
- Zero critical vulnerabilities in production code
|
|
738
|
+
|
|
739
|
+
---
|
|
740
|
+
|
|
741
|
+
## Contributing
|
|
742
|
+
|
|
743
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
744
|
+
|
|
745
|
+
---
|
|
746
|
+
|
|
747
|
+
## License
|
|
748
|
+
|
|
749
|
+
**Fair Source License 0.9** - Free for students, educators, and teams ≤5 employees. Commercial license for larger organizations. [Details →](LICENSE)
|
|
750
|
+
|
|
751
|
+
---
|
|
752
|
+
|
|
753
|
+
**Built by [Smart AI Memory](https://smartaimemory.com)** · [Docs](https://smartaimemory.com/framework-docs/) · [Examples](examples/) · [Issues](https://github.com/Smart-AI-Memory/empathy-framework/issues)
|