empathy-framework 5.2.1__py3-none-any.whl → 5.4.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-5.4.0.dist-info/METADATA +47 -0
- empathy_framework-5.4.0.dist-info/RECORD +8 -0
- {empathy_framework-5.2.1.dist-info → empathy_framework-5.4.0.dist-info}/top_level.txt +0 -1
- empathy_healthcare_plugin/__init__.py +12 -11
- empathy_llm_toolkit/__init__.py +12 -26
- empathy_os/__init__.py +12 -356
- empathy_software_plugin/__init__.py +12 -11
- empathy_framework-5.2.1.dist-info/METADATA +0 -1002
- empathy_framework-5.2.1.dist-info/RECORD +0 -478
- empathy_framework-5.2.1.dist-info/entry_points.txt +0 -26
- empathy_framework-5.2.1.dist-info/licenses/LICENSE +0 -201
- empathy_framework-5.2.1.dist-info/licenses/LICENSE_CHANGE_ANNOUNCEMENT.md +0 -101
- empathy_healthcare_plugin/monitors/__init__.py +0 -9
- empathy_healthcare_plugin/monitors/clinical_protocol_monitor.py +0 -315
- empathy_healthcare_plugin/monitors/monitoring/__init__.py +0 -44
- empathy_healthcare_plugin/monitors/monitoring/protocol_checker.py +0 -300
- empathy_healthcare_plugin/monitors/monitoring/protocol_loader.py +0 -214
- empathy_healthcare_plugin/monitors/monitoring/sensor_parsers.py +0 -306
- empathy_healthcare_plugin/monitors/monitoring/trajectory_analyzer.py +0 -389
- empathy_healthcare_plugin/protocols/cardiac.json +0 -93
- empathy_healthcare_plugin/protocols/post_operative.json +0 -92
- empathy_healthcare_plugin/protocols/respiratory.json +0 -92
- empathy_healthcare_plugin/protocols/sepsis.json +0 -141
- empathy_llm_toolkit/README.md +0 -553
- empathy_llm_toolkit/agent_factory/__init__.py +0 -53
- empathy_llm_toolkit/agent_factory/adapters/__init__.py +0 -85
- empathy_llm_toolkit/agent_factory/adapters/autogen_adapter.py +0 -312
- empathy_llm_toolkit/agent_factory/adapters/crewai_adapter.py +0 -483
- empathy_llm_toolkit/agent_factory/adapters/haystack_adapter.py +0 -298
- empathy_llm_toolkit/agent_factory/adapters/langchain_adapter.py +0 -362
- empathy_llm_toolkit/agent_factory/adapters/langgraph_adapter.py +0 -333
- empathy_llm_toolkit/agent_factory/adapters/native.py +0 -228
- empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +0 -423
- empathy_llm_toolkit/agent_factory/base.py +0 -305
- empathy_llm_toolkit/agent_factory/crews/__init__.py +0 -67
- empathy_llm_toolkit/agent_factory/crews/code_review.py +0 -1113
- empathy_llm_toolkit/agent_factory/crews/health_check.py +0 -1262
- empathy_llm_toolkit/agent_factory/crews/refactoring.py +0 -1128
- empathy_llm_toolkit/agent_factory/crews/security_audit.py +0 -1018
- empathy_llm_toolkit/agent_factory/decorators.py +0 -287
- empathy_llm_toolkit/agent_factory/factory.py +0 -558
- empathy_llm_toolkit/agent_factory/framework.py +0 -193
- empathy_llm_toolkit/agent_factory/memory_integration.py +0 -328
- empathy_llm_toolkit/agent_factory/resilient.py +0 -320
- empathy_llm_toolkit/agents_md/__init__.py +0 -22
- empathy_llm_toolkit/agents_md/loader.py +0 -218
- empathy_llm_toolkit/agents_md/parser.py +0 -271
- empathy_llm_toolkit/agents_md/registry.py +0 -307
- empathy_llm_toolkit/claude_memory.py +0 -466
- empathy_llm_toolkit/cli/__init__.py +0 -8
- empathy_llm_toolkit/cli/sync_claude.py +0 -487
- empathy_llm_toolkit/code_health.py +0 -1313
- empathy_llm_toolkit/commands/__init__.py +0 -51
- empathy_llm_toolkit/commands/context.py +0 -375
- empathy_llm_toolkit/commands/loader.py +0 -301
- empathy_llm_toolkit/commands/models.py +0 -231
- empathy_llm_toolkit/commands/parser.py +0 -371
- empathy_llm_toolkit/commands/registry.py +0 -429
- empathy_llm_toolkit/config/__init__.py +0 -29
- empathy_llm_toolkit/config/unified.py +0 -291
- empathy_llm_toolkit/context/__init__.py +0 -22
- empathy_llm_toolkit/context/compaction.py +0 -455
- empathy_llm_toolkit/context/manager.py +0 -434
- empathy_llm_toolkit/contextual_patterns.py +0 -361
- empathy_llm_toolkit/core.py +0 -907
- empathy_llm_toolkit/git_pattern_extractor.py +0 -435
- empathy_llm_toolkit/hooks/__init__.py +0 -24
- empathy_llm_toolkit/hooks/config.py +0 -306
- empathy_llm_toolkit/hooks/executor.py +0 -289
- empathy_llm_toolkit/hooks/registry.py +0 -302
- empathy_llm_toolkit/hooks/scripts/__init__.py +0 -39
- empathy_llm_toolkit/hooks/scripts/evaluate_session.py +0 -201
- empathy_llm_toolkit/hooks/scripts/first_time_init.py +0 -285
- empathy_llm_toolkit/hooks/scripts/pre_compact.py +0 -207
- empathy_llm_toolkit/hooks/scripts/session_end.py +0 -183
- empathy_llm_toolkit/hooks/scripts/session_start.py +0 -163
- empathy_llm_toolkit/hooks/scripts/suggest_compact.py +0 -225
- empathy_llm_toolkit/learning/__init__.py +0 -30
- empathy_llm_toolkit/learning/evaluator.py +0 -438
- empathy_llm_toolkit/learning/extractor.py +0 -514
- empathy_llm_toolkit/learning/storage.py +0 -560
- empathy_llm_toolkit/levels.py +0 -227
- empathy_llm_toolkit/pattern_confidence.py +0 -414
- empathy_llm_toolkit/pattern_resolver.py +0 -272
- empathy_llm_toolkit/pattern_summary.py +0 -350
- empathy_llm_toolkit/providers.py +0 -967
- empathy_llm_toolkit/routing/__init__.py +0 -32
- empathy_llm_toolkit/routing/model_router.py +0 -362
- empathy_llm_toolkit/security/IMPLEMENTATION_SUMMARY.md +0 -413
- empathy_llm_toolkit/security/PHASE2_COMPLETE.md +0 -384
- empathy_llm_toolkit/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +0 -271
- empathy_llm_toolkit/security/QUICK_REFERENCE.md +0 -316
- empathy_llm_toolkit/security/README.md +0 -262
- empathy_llm_toolkit/security/__init__.py +0 -62
- empathy_llm_toolkit/security/audit_logger.py +0 -929
- empathy_llm_toolkit/security/audit_logger_example.py +0 -152
- empathy_llm_toolkit/security/pii_scrubber.py +0 -640
- empathy_llm_toolkit/security/secrets_detector.py +0 -678
- empathy_llm_toolkit/security/secrets_detector_example.py +0 -304
- empathy_llm_toolkit/security/secure_memdocs.py +0 -1192
- empathy_llm_toolkit/security/secure_memdocs_example.py +0 -278
- empathy_llm_toolkit/session_status.py +0 -745
- empathy_llm_toolkit/state.py +0 -246
- empathy_llm_toolkit/utils/__init__.py +0 -5
- empathy_llm_toolkit/utils/tokens.py +0 -349
- empathy_os/adaptive/__init__.py +0 -13
- empathy_os/adaptive/task_complexity.py +0 -127
- empathy_os/agent_monitoring.py +0 -414
- empathy_os/cache/__init__.py +0 -117
- empathy_os/cache/base.py +0 -166
- empathy_os/cache/dependency_manager.py +0 -256
- empathy_os/cache/hash_only.py +0 -251
- empathy_os/cache/hybrid.py +0 -453
- empathy_os/cache/storage.py +0 -285
- empathy_os/cache_monitor.py +0 -356
- empathy_os/cache_stats.py +0 -298
- empathy_os/cli/__init__.py +0 -152
- empathy_os/cli/__main__.py +0 -12
- empathy_os/cli/commands/__init__.py +0 -1
- empathy_os/cli/commands/batch.py +0 -256
- empathy_os/cli/commands/cache.py +0 -248
- empathy_os/cli/commands/help.py +0 -331
- empathy_os/cli/commands/info.py +0 -140
- empathy_os/cli/commands/inspect.py +0 -436
- empathy_os/cli/commands/inspection.py +0 -57
- empathy_os/cli/commands/memory.py +0 -48
- empathy_os/cli/commands/metrics.py +0 -92
- empathy_os/cli/commands/orchestrate.py +0 -184
- empathy_os/cli/commands/patterns.py +0 -207
- empathy_os/cli/commands/profiling.py +0 -198
- empathy_os/cli/commands/provider.py +0 -98
- empathy_os/cli/commands/routing.py +0 -285
- empathy_os/cli/commands/setup.py +0 -96
- empathy_os/cli/commands/status.py +0 -235
- empathy_os/cli/commands/sync.py +0 -166
- empathy_os/cli/commands/tier.py +0 -121
- empathy_os/cli/commands/utilities.py +0 -114
- empathy_os/cli/commands/workflow.py +0 -575
- empathy_os/cli/core.py +0 -32
- empathy_os/cli/parsers/__init__.py +0 -68
- empathy_os/cli/parsers/batch.py +0 -118
- empathy_os/cli/parsers/cache 2.py +0 -65
- empathy_os/cli/parsers/cache.py +0 -65
- empathy_os/cli/parsers/help.py +0 -41
- empathy_os/cli/parsers/info.py +0 -26
- empathy_os/cli/parsers/inspect.py +0 -66
- empathy_os/cli/parsers/metrics.py +0 -42
- empathy_os/cli/parsers/orchestrate.py +0 -61
- empathy_os/cli/parsers/patterns.py +0 -54
- empathy_os/cli/parsers/provider.py +0 -40
- empathy_os/cli/parsers/routing.py +0 -110
- empathy_os/cli/parsers/setup.py +0 -42
- empathy_os/cli/parsers/status.py +0 -47
- empathy_os/cli/parsers/sync.py +0 -31
- empathy_os/cli/parsers/tier.py +0 -33
- empathy_os/cli/parsers/workflow.py +0 -77
- empathy_os/cli/utils/__init__.py +0 -1
- empathy_os/cli/utils/data.py +0 -242
- empathy_os/cli/utils/helpers.py +0 -68
- empathy_os/cli_legacy.py +0 -3957
- empathy_os/cli_minimal.py +0 -1159
- empathy_os/cli_router 2.py +0 -416
- empathy_os/cli_router.py +0 -437
- empathy_os/cli_unified.py +0 -814
- empathy_os/config/__init__.py +0 -66
- empathy_os/config/xml_config.py +0 -286
- empathy_os/config.py +0 -532
- empathy_os/coordination.py +0 -870
- empathy_os/core.py +0 -1511
- empathy_os/core_modules/__init__.py +0 -15
- empathy_os/cost_tracker.py +0 -626
- empathy_os/dashboard/__init__.py +0 -41
- empathy_os/dashboard/app 2.py +0 -512
- empathy_os/dashboard/app.py +0 -512
- empathy_os/dashboard/simple_server 2.py +0 -403
- empathy_os/dashboard/simple_server.py +0 -403
- empathy_os/dashboard/standalone_server 2.py +0 -536
- empathy_os/dashboard/standalone_server.py +0 -547
- empathy_os/discovery.py +0 -306
- empathy_os/emergence.py +0 -306
- empathy_os/exceptions.py +0 -123
- empathy_os/feedback_loops.py +0 -373
- empathy_os/hot_reload/README.md +0 -473
- empathy_os/hot_reload/__init__.py +0 -62
- empathy_os/hot_reload/config.py +0 -83
- empathy_os/hot_reload/integration.py +0 -229
- empathy_os/hot_reload/reloader.py +0 -298
- empathy_os/hot_reload/watcher.py +0 -183
- empathy_os/hot_reload/websocket.py +0 -177
- empathy_os/levels.py +0 -577
- empathy_os/leverage_points.py +0 -441
- empathy_os/logging_config.py +0 -261
- empathy_os/mcp/__init__.py +0 -10
- empathy_os/mcp/server.py +0 -506
- empathy_os/memory/__init__.py +0 -237
- empathy_os/memory/claude_memory.py +0 -469
- empathy_os/memory/config.py +0 -224
- empathy_os/memory/control_panel.py +0 -1290
- empathy_os/memory/control_panel_support.py +0 -145
- empathy_os/memory/cross_session.py +0 -845
- empathy_os/memory/edges.py +0 -179
- empathy_os/memory/encryption.py +0 -159
- empathy_os/memory/file_session.py +0 -770
- empathy_os/memory/graph.py +0 -570
- empathy_os/memory/long_term.py +0 -913
- empathy_os/memory/long_term_types.py +0 -99
- empathy_os/memory/mixins/__init__.py +0 -25
- empathy_os/memory/mixins/backend_init_mixin.py +0 -244
- empathy_os/memory/mixins/capabilities_mixin.py +0 -199
- empathy_os/memory/mixins/handoff_mixin.py +0 -208
- empathy_os/memory/mixins/lifecycle_mixin.py +0 -49
- empathy_os/memory/mixins/long_term_mixin.py +0 -352
- empathy_os/memory/mixins/promotion_mixin.py +0 -109
- empathy_os/memory/mixins/short_term_mixin.py +0 -182
- empathy_os/memory/nodes.py +0 -179
- empathy_os/memory/redis_bootstrap.py +0 -540
- empathy_os/memory/security/__init__.py +0 -31
- empathy_os/memory/security/audit_logger.py +0 -932
- empathy_os/memory/security/pii_scrubber.py +0 -640
- empathy_os/memory/security/secrets_detector.py +0 -678
- empathy_os/memory/short_term.py +0 -2150
- empathy_os/memory/simple_storage.py +0 -302
- empathy_os/memory/storage/__init__.py +0 -15
- empathy_os/memory/storage_backend.py +0 -167
- empathy_os/memory/summary_index.py +0 -583
- empathy_os/memory/types.py +0 -441
- empathy_os/memory/unified.py +0 -182
- empathy_os/meta_workflows/__init__.py +0 -74
- empathy_os/meta_workflows/agent_creator.py +0 -248
- empathy_os/meta_workflows/builtin_templates.py +0 -567
- empathy_os/meta_workflows/cli_commands/__init__.py +0 -56
- empathy_os/meta_workflows/cli_commands/agent_commands.py +0 -321
- empathy_os/meta_workflows/cli_commands/analytics_commands.py +0 -442
- empathy_os/meta_workflows/cli_commands/config_commands.py +0 -232
- empathy_os/meta_workflows/cli_commands/memory_commands.py +0 -182
- empathy_os/meta_workflows/cli_commands/template_commands.py +0 -354
- empathy_os/meta_workflows/cli_commands/workflow_commands.py +0 -382
- empathy_os/meta_workflows/cli_meta_workflows.py +0 -59
- empathy_os/meta_workflows/form_engine.py +0 -292
- empathy_os/meta_workflows/intent_detector.py +0 -409
- empathy_os/meta_workflows/models.py +0 -569
- empathy_os/meta_workflows/pattern_learner.py +0 -738
- empathy_os/meta_workflows/plan_generator.py +0 -384
- empathy_os/meta_workflows/session_context.py +0 -397
- empathy_os/meta_workflows/template_registry.py +0 -229
- empathy_os/meta_workflows/workflow.py +0 -984
- empathy_os/metrics/__init__.py +0 -12
- empathy_os/metrics/collector.py +0 -31
- empathy_os/metrics/prompt_metrics.py +0 -194
- empathy_os/models/__init__.py +0 -172
- empathy_os/models/__main__.py +0 -13
- empathy_os/models/adaptive_routing 2.py +0 -437
- empathy_os/models/adaptive_routing.py +0 -437
- empathy_os/models/auth_cli.py +0 -444
- empathy_os/models/auth_strategy.py +0 -450
- empathy_os/models/cli.py +0 -655
- empathy_os/models/empathy_executor.py +0 -354
- empathy_os/models/executor.py +0 -257
- empathy_os/models/fallback.py +0 -762
- empathy_os/models/provider_config.py +0 -282
- empathy_os/models/registry.py +0 -472
- empathy_os/models/tasks.py +0 -359
- empathy_os/models/telemetry/__init__.py +0 -71
- empathy_os/models/telemetry/analytics.py +0 -594
- empathy_os/models/telemetry/backend.py +0 -196
- empathy_os/models/telemetry/data_models.py +0 -431
- empathy_os/models/telemetry/storage.py +0 -489
- empathy_os/models/token_estimator.py +0 -420
- empathy_os/models/validation.py +0 -280
- empathy_os/monitoring/__init__.py +0 -52
- empathy_os/monitoring/alerts.py +0 -946
- empathy_os/monitoring/alerts_cli.py +0 -448
- empathy_os/monitoring/multi_backend.py +0 -271
- empathy_os/monitoring/otel_backend.py +0 -362
- empathy_os/optimization/__init__.py +0 -19
- empathy_os/optimization/context_optimizer.py +0 -272
- empathy_os/orchestration/__init__.py +0 -67
- empathy_os/orchestration/agent_templates.py +0 -707
- empathy_os/orchestration/config_store.py +0 -499
- empathy_os/orchestration/execution_strategies.py +0 -2111
- empathy_os/orchestration/meta_orchestrator.py +0 -1168
- empathy_os/orchestration/pattern_learner.py +0 -696
- empathy_os/orchestration/real_tools.py +0 -931
- empathy_os/pattern_cache.py +0 -187
- empathy_os/pattern_library.py +0 -542
- empathy_os/patterns/debugging/all_patterns.json +0 -81
- empathy_os/patterns/debugging/workflow_20260107_1770825e.json +0 -77
- empathy_os/patterns/refactoring_memory.json +0 -89
- empathy_os/persistence.py +0 -564
- empathy_os/platform_utils.py +0 -265
- empathy_os/plugins/__init__.py +0 -28
- empathy_os/plugins/base.py +0 -361
- empathy_os/plugins/registry.py +0 -268
- empathy_os/project_index/__init__.py +0 -32
- empathy_os/project_index/cli.py +0 -335
- empathy_os/project_index/index.py +0 -667
- empathy_os/project_index/models.py +0 -504
- empathy_os/project_index/reports.py +0 -474
- empathy_os/project_index/scanner.py +0 -777
- empathy_os/project_index/scanner_parallel 2.py +0 -291
- empathy_os/project_index/scanner_parallel.py +0 -291
- empathy_os/prompts/__init__.py +0 -61
- empathy_os/prompts/config.py +0 -77
- empathy_os/prompts/context.py +0 -177
- empathy_os/prompts/parser.py +0 -285
- empathy_os/prompts/registry.py +0 -313
- empathy_os/prompts/templates.py +0 -208
- empathy_os/redis_config.py +0 -302
- empathy_os/redis_memory.py +0 -799
- empathy_os/resilience/__init__.py +0 -56
- empathy_os/resilience/circuit_breaker.py +0 -256
- empathy_os/resilience/fallback.py +0 -179
- empathy_os/resilience/health.py +0 -300
- empathy_os/resilience/retry.py +0 -209
- empathy_os/resilience/timeout.py +0 -135
- empathy_os/routing/__init__.py +0 -43
- empathy_os/routing/chain_executor.py +0 -433
- empathy_os/routing/classifier.py +0 -217
- empathy_os/routing/smart_router.py +0 -234
- empathy_os/routing/workflow_registry.py +0 -343
- empathy_os/scaffolding/README.md +0 -589
- empathy_os/scaffolding/__init__.py +0 -35
- empathy_os/scaffolding/__main__.py +0 -14
- empathy_os/scaffolding/cli.py +0 -240
- empathy_os/socratic/__init__.py +0 -256
- empathy_os/socratic/ab_testing.py +0 -958
- empathy_os/socratic/blueprint.py +0 -533
- empathy_os/socratic/cli.py +0 -703
- empathy_os/socratic/collaboration.py +0 -1114
- empathy_os/socratic/domain_templates.py +0 -924
- empathy_os/socratic/embeddings.py +0 -738
- empathy_os/socratic/engine.py +0 -794
- empathy_os/socratic/explainer.py +0 -682
- empathy_os/socratic/feedback.py +0 -772
- empathy_os/socratic/forms.py +0 -629
- empathy_os/socratic/generator.py +0 -732
- empathy_os/socratic/llm_analyzer.py +0 -637
- empathy_os/socratic/mcp_server.py +0 -702
- empathy_os/socratic/session.py +0 -312
- empathy_os/socratic/storage.py +0 -667
- empathy_os/socratic/success.py +0 -730
- empathy_os/socratic/visual_editor.py +0 -860
- empathy_os/socratic/web_ui.py +0 -958
- empathy_os/telemetry/__init__.py +0 -39
- empathy_os/telemetry/agent_coordination 2.py +0 -478
- empathy_os/telemetry/agent_coordination.py +0 -476
- empathy_os/telemetry/agent_tracking 2.py +0 -350
- empathy_os/telemetry/agent_tracking.py +0 -348
- empathy_os/telemetry/approval_gates 2.py +0 -563
- empathy_os/telemetry/approval_gates.py +0 -551
- empathy_os/telemetry/cli.py +0 -1231
- empathy_os/telemetry/commands/__init__.py +0 -14
- empathy_os/telemetry/commands/dashboard_commands.py +0 -696
- empathy_os/telemetry/event_streaming 2.py +0 -405
- empathy_os/telemetry/event_streaming.py +0 -405
- empathy_os/telemetry/feedback_loop 2.py +0 -557
- empathy_os/telemetry/feedback_loop.py +0 -554
- empathy_os/telemetry/usage_tracker.py +0 -591
- empathy_os/templates.py +0 -754
- empathy_os/test_generator/__init__.py +0 -38
- empathy_os/test_generator/__main__.py +0 -14
- empathy_os/test_generator/cli.py +0 -234
- empathy_os/test_generator/generator.py +0 -355
- empathy_os/test_generator/risk_analyzer.py +0 -216
- empathy_os/tier_recommender.py +0 -384
- empathy_os/tools.py +0 -183
- empathy_os/trust/__init__.py +0 -28
- empathy_os/trust/circuit_breaker.py +0 -579
- empathy_os/trust_building.py +0 -527
- empathy_os/validation/__init__.py +0 -19
- empathy_os/validation/xml_validator.py +0 -281
- empathy_os/vscode_bridge 2.py +0 -173
- empathy_os/vscode_bridge.py +0 -173
- empathy_os/workflow_commands.py +0 -780
- empathy_os/workflow_patterns/__init__.py +0 -33
- empathy_os/workflow_patterns/behavior.py +0 -249
- empathy_os/workflow_patterns/core.py +0 -76
- empathy_os/workflow_patterns/output.py +0 -99
- empathy_os/workflow_patterns/registry.py +0 -255
- empathy_os/workflow_patterns/structural.py +0 -288
- empathy_os/workflows/__init__.py +0 -539
- empathy_os/workflows/autonomous_test_gen.py +0 -1268
- empathy_os/workflows/base.py +0 -2667
- empathy_os/workflows/batch_processing.py +0 -342
- empathy_os/workflows/bug_predict.py +0 -1084
- empathy_os/workflows/builder.py +0 -273
- empathy_os/workflows/caching.py +0 -253
- empathy_os/workflows/code_review.py +0 -1048
- empathy_os/workflows/code_review_adapters.py +0 -312
- empathy_os/workflows/code_review_pipeline.py +0 -722
- empathy_os/workflows/config.py +0 -645
- empathy_os/workflows/dependency_check.py +0 -644
- empathy_os/workflows/document_gen/__init__.py +0 -25
- empathy_os/workflows/document_gen/config.py +0 -30
- empathy_os/workflows/document_gen/report_formatter.py +0 -162
- empathy_os/workflows/document_gen/workflow.py +0 -1426
- empathy_os/workflows/document_gen.py +0 -29
- empathy_os/workflows/document_manager.py +0 -216
- empathy_os/workflows/document_manager_README.md +0 -134
- empathy_os/workflows/documentation_orchestrator.py +0 -1205
- empathy_os/workflows/history.py +0 -510
- empathy_os/workflows/keyboard_shortcuts/__init__.py +0 -39
- empathy_os/workflows/keyboard_shortcuts/generators.py +0 -391
- empathy_os/workflows/keyboard_shortcuts/parsers.py +0 -416
- empathy_os/workflows/keyboard_shortcuts/prompts.py +0 -295
- empathy_os/workflows/keyboard_shortcuts/schema.py +0 -193
- empathy_os/workflows/keyboard_shortcuts/workflow.py +0 -509
- empathy_os/workflows/llm_base.py +0 -363
- empathy_os/workflows/manage_docs.py +0 -87
- empathy_os/workflows/manage_docs_README.md +0 -134
- empathy_os/workflows/manage_documentation.py +0 -821
- empathy_os/workflows/new_sample_workflow1.py +0 -149
- empathy_os/workflows/new_sample_workflow1_README.md +0 -150
- empathy_os/workflows/orchestrated_health_check.py +0 -849
- empathy_os/workflows/orchestrated_release_prep.py +0 -600
- empathy_os/workflows/output.py +0 -410
- empathy_os/workflows/perf_audit.py +0 -863
- empathy_os/workflows/pr_review.py +0 -762
- empathy_os/workflows/progress.py +0 -779
- empathy_os/workflows/progress_server.py +0 -322
- empathy_os/workflows/progressive/README 2.md +0 -454
- empathy_os/workflows/progressive/README.md +0 -454
- empathy_os/workflows/progressive/__init__ 2.py +0 -92
- empathy_os/workflows/progressive/__init__.py +0 -82
- empathy_os/workflows/progressive/cli 2.py +0 -242
- empathy_os/workflows/progressive/cli.py +0 -219
- empathy_os/workflows/progressive/core 2.py +0 -488
- empathy_os/workflows/progressive/core.py +0 -488
- empathy_os/workflows/progressive/orchestrator 2.py +0 -701
- empathy_os/workflows/progressive/orchestrator.py +0 -723
- empathy_os/workflows/progressive/reports 2.py +0 -528
- empathy_os/workflows/progressive/reports.py +0 -520
- empathy_os/workflows/progressive/telemetry 2.py +0 -280
- empathy_os/workflows/progressive/telemetry.py +0 -274
- empathy_os/workflows/progressive/test_gen 2.py +0 -514
- empathy_os/workflows/progressive/test_gen.py +0 -495
- empathy_os/workflows/progressive/workflow 2.py +0 -628
- empathy_os/workflows/progressive/workflow.py +0 -589
- empathy_os/workflows/refactor_plan.py +0 -694
- empathy_os/workflows/release_prep.py +0 -895
- empathy_os/workflows/release_prep_crew.py +0 -969
- empathy_os/workflows/research_synthesis.py +0 -404
- empathy_os/workflows/routing.py +0 -168
- empathy_os/workflows/secure_release.py +0 -593
- empathy_os/workflows/security_adapters.py +0 -297
- empathy_os/workflows/security_audit.py +0 -1329
- empathy_os/workflows/security_audit_phase3.py +0 -355
- empathy_os/workflows/seo_optimization.py +0 -633
- empathy_os/workflows/step_config.py +0 -234
- empathy_os/workflows/telemetry_mixin.py +0 -269
- empathy_os/workflows/test5.py +0 -125
- empathy_os/workflows/test5_README.md +0 -158
- empathy_os/workflows/test_coverage_boost_crew.py +0 -849
- empathy_os/workflows/test_gen/__init__.py +0 -52
- empathy_os/workflows/test_gen/ast_analyzer.py +0 -249
- empathy_os/workflows/test_gen/config.py +0 -88
- empathy_os/workflows/test_gen/data_models.py +0 -38
- empathy_os/workflows/test_gen/report_formatter.py +0 -289
- empathy_os/workflows/test_gen/test_templates.py +0 -381
- empathy_os/workflows/test_gen/workflow.py +0 -655
- empathy_os/workflows/test_gen.py +0 -54
- empathy_os/workflows/test_gen_behavioral.py +0 -477
- empathy_os/workflows/test_gen_parallel.py +0 -341
- empathy_os/workflows/test_lifecycle.py +0 -526
- empathy_os/workflows/test_maintenance.py +0 -627
- empathy_os/workflows/test_maintenance_cli.py +0 -590
- empathy_os/workflows/test_maintenance_crew.py +0 -840
- empathy_os/workflows/test_runner.py +0 -622
- empathy_os/workflows/tier_tracking.py +0 -531
- empathy_os/workflows/xml_enhanced_crew.py +0 -285
- empathy_software_plugin/SOFTWARE_PLUGIN_README.md +0 -57
- empathy_software_plugin/cli/__init__.py +0 -120
- empathy_software_plugin/cli/inspect.py +0 -362
- empathy_software_plugin/cli.py +0 -574
- empathy_software_plugin/plugin.py +0 -188
- workflow_scaffolding/__init__.py +0 -11
- workflow_scaffolding/__main__.py +0 -12
- workflow_scaffolding/cli.py +0 -206
- workflow_scaffolding/generator.py +0 -265
- {empathy_framework-5.2.1.dist-info → empathy_framework-5.4.0.dist-info}/WHEEL +0 -0
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
"""XML-Enhanced Agent and Task Templates for CrewAI Workflows
|
|
2
|
-
|
|
3
|
-
This module provides reusable base classes for creating XML-enhanced CrewAI
|
|
4
|
-
agents and tasks based on Anthropic's prompting best practices.
|
|
5
|
-
|
|
6
|
-
Benefits:
|
|
7
|
-
- 40-60% reduction in misinterpreted instructions
|
|
8
|
-
- 30-50% better output consistency
|
|
9
|
-
- 20-30% fewer retry attempts
|
|
10
|
-
- Better debugging with separated thinking/answer
|
|
11
|
-
|
|
12
|
-
Usage:
|
|
13
|
-
from empathy_os.workflows.xml_enhanced_crew import XMLAgent, XMLTask, parse_xml_response
|
|
14
|
-
|
|
15
|
-
agent = XMLAgent(
|
|
16
|
-
role="Documentation Analyst",
|
|
17
|
-
goal="Scan codebase for documentation gaps",
|
|
18
|
-
backstory="Expert in code documentation best practices"
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
task = XMLTask(
|
|
22
|
-
description="Analyze Python files for missing docstrings",
|
|
23
|
-
expected_output="JSON list of files with missing documentation",
|
|
24
|
-
agent=agent
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
Copyright 2026 Smart-AI-Memory
|
|
28
|
-
Licensed under Fair Source License 0.9
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
import re
|
|
32
|
-
from dataclasses import dataclass, field
|
|
33
|
-
from typing import Any
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
@dataclass
|
|
37
|
-
class XMLAgent:
|
|
38
|
-
"""Agent with XML-enhanced prompting (Anthropic best practice).
|
|
39
|
-
|
|
40
|
-
This class generates structured prompts using XML tags for better clarity
|
|
41
|
-
and reduces ambiguity in agent instructions.
|
|
42
|
-
|
|
43
|
-
Attributes:
|
|
44
|
-
role: The agent's role (e.g., "Documentation Analyst")
|
|
45
|
-
goal: What the agent aims to achieve
|
|
46
|
-
backstory: Domain expertise and personality
|
|
47
|
-
expertise_level: Level of expertise (expert, world-class, etc.)
|
|
48
|
-
use_xml_structure: Enable/disable XML formatting (default: True)
|
|
49
|
-
custom_instructions: Additional instructions to append
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
role: str
|
|
53
|
-
goal: str
|
|
54
|
-
backstory: str
|
|
55
|
-
expertise_level: str = "expert"
|
|
56
|
-
use_xml_structure: bool = True
|
|
57
|
-
custom_instructions: list[str] = field(default_factory=list)
|
|
58
|
-
|
|
59
|
-
def get_system_prompt(self) -> str:
|
|
60
|
-
"""Generate XML-enhanced system prompt for this agent.
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
Structured prompt with XML tags for role, goal, backstory, etc.
|
|
64
|
-
"""
|
|
65
|
-
if not self.use_xml_structure:
|
|
66
|
-
# Legacy format for backward compatibility
|
|
67
|
-
return self._get_legacy_prompt()
|
|
68
|
-
|
|
69
|
-
# XML-enhanced format (Anthropic best practice)
|
|
70
|
-
instructions = [
|
|
71
|
-
"Carefully review all provided context data",
|
|
72
|
-
"Think through your analysis step-by-step",
|
|
73
|
-
"Provide thorough, actionable analysis",
|
|
74
|
-
"Be specific and cite file paths when relevant",
|
|
75
|
-
"Structure your output according to the requested format",
|
|
76
|
-
]
|
|
77
|
-
|
|
78
|
-
# Add custom instructions
|
|
79
|
-
instructions.extend(self.custom_instructions)
|
|
80
|
-
|
|
81
|
-
instructions_text = "\n".join(f"{i}. {inst}" for i, inst in enumerate(instructions, 1))
|
|
82
|
-
|
|
83
|
-
return f"""<agent_role>
|
|
84
|
-
You are a {self.role} with {self.expertise_level}-level expertise.
|
|
85
|
-
</agent_role>
|
|
86
|
-
|
|
87
|
-
<agent_goal>
|
|
88
|
-
{self.goal}
|
|
89
|
-
</agent_goal>
|
|
90
|
-
|
|
91
|
-
<agent_backstory>
|
|
92
|
-
{self.backstory}
|
|
93
|
-
</agent_backstory>
|
|
94
|
-
|
|
95
|
-
<instructions>
|
|
96
|
-
{instructions_text}
|
|
97
|
-
</instructions>
|
|
98
|
-
|
|
99
|
-
<output_structure>
|
|
100
|
-
Always structure your response as:
|
|
101
|
-
|
|
102
|
-
<thinking>
|
|
103
|
-
[Your step-by-step reasoning process]
|
|
104
|
-
- What you observe in the context
|
|
105
|
-
- How you analyze the situation
|
|
106
|
-
- What conclusions you draw
|
|
107
|
-
</thinking>
|
|
108
|
-
|
|
109
|
-
<answer>
|
|
110
|
-
[Your final output in the requested format]
|
|
111
|
-
</answer>
|
|
112
|
-
</output_structure>"""
|
|
113
|
-
|
|
114
|
-
def _get_legacy_prompt(self) -> str:
|
|
115
|
-
"""Generate legacy non-XML prompt for backward compatibility."""
|
|
116
|
-
return f"""You are a {self.role} with {self.expertise_level}-level expertise.
|
|
117
|
-
|
|
118
|
-
Goal: {self.goal}
|
|
119
|
-
|
|
120
|
-
Background: {self.backstory}
|
|
121
|
-
|
|
122
|
-
Provide thorough, actionable analysis. Be specific and cite file paths when relevant."""
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
@dataclass
|
|
126
|
-
class XMLTask:
|
|
127
|
-
"""Task with XML-enhanced prompting (Anthropic best practice).
|
|
128
|
-
|
|
129
|
-
This class generates structured task prompts using XML tags to clearly
|
|
130
|
-
separate task description, context, and expected output.
|
|
131
|
-
|
|
132
|
-
Attributes:
|
|
133
|
-
description: What the task entails
|
|
134
|
-
expected_output: Format and content of expected output
|
|
135
|
-
agent: The XMLAgent assigned to this task
|
|
136
|
-
examples: Optional list of example inputs/outputs
|
|
137
|
-
"""
|
|
138
|
-
|
|
139
|
-
description: str
|
|
140
|
-
expected_output: str
|
|
141
|
-
agent: XMLAgent
|
|
142
|
-
examples: list[dict[str, Any]] = field(default_factory=list)
|
|
143
|
-
|
|
144
|
-
def get_user_prompt(self, context: dict) -> str:
|
|
145
|
-
"""Generate XML-enhanced user prompt for this task.
|
|
146
|
-
|
|
147
|
-
Args:
|
|
148
|
-
context: Dictionary of context data for the task
|
|
149
|
-
|
|
150
|
-
Returns:
|
|
151
|
-
Structured prompt with XML tags for description, context, etc.
|
|
152
|
-
"""
|
|
153
|
-
if not self.agent.use_xml_structure:
|
|
154
|
-
# Legacy format for backward compatibility
|
|
155
|
-
return self._get_legacy_prompt(context)
|
|
156
|
-
|
|
157
|
-
# XML-enhanced format (Anthropic best practice)
|
|
158
|
-
# Build structured context with proper XML tags
|
|
159
|
-
context_sections = []
|
|
160
|
-
for key, value in context.items():
|
|
161
|
-
if value:
|
|
162
|
-
# Use underscores for tag names (valid XML)
|
|
163
|
-
tag_name = key.replace(" ", "_").replace("-", "_").lower()
|
|
164
|
-
# Wrap in appropriate tags
|
|
165
|
-
context_sections.append(f"<{tag_name}>\n{value}\n</{tag_name}>")
|
|
166
|
-
|
|
167
|
-
context_xml = "\n".join(context_sections)
|
|
168
|
-
|
|
169
|
-
# Build examples XML if provided
|
|
170
|
-
examples_xml = ""
|
|
171
|
-
if self.examples:
|
|
172
|
-
examples_xml = "<examples>\n"
|
|
173
|
-
for i, ex in enumerate(self.examples, 1):
|
|
174
|
-
examples_xml += f'<example number="{i}">\n'
|
|
175
|
-
examples_xml += f"<input>\n{ex.get('input', '')}\n</input>\n"
|
|
176
|
-
examples_xml += f"<expected_output>\n{ex.get('output', '')}\n</expected_output>\n"
|
|
177
|
-
examples_xml += "</example>\n"
|
|
178
|
-
examples_xml += "</examples>\n\n"
|
|
179
|
-
|
|
180
|
-
return f"""{examples_xml}<task_description>
|
|
181
|
-
{self.description}
|
|
182
|
-
</task_description>
|
|
183
|
-
|
|
184
|
-
<context>
|
|
185
|
-
{context_xml}
|
|
186
|
-
</context>
|
|
187
|
-
|
|
188
|
-
<expected_output>
|
|
189
|
-
{self.expected_output}
|
|
190
|
-
</expected_output>
|
|
191
|
-
|
|
192
|
-
<instructions>
|
|
193
|
-
1. Review all context data in the <context> tags above
|
|
194
|
-
2. Structure your response using <thinking> and <answer> tags as defined in your system prompt
|
|
195
|
-
3. Match the expected output format exactly
|
|
196
|
-
4. Be thorough and specific in your analysis
|
|
197
|
-
{"5. Use the examples above as a guide for output structure" if self.examples else ""}
|
|
198
|
-
</instructions>"""
|
|
199
|
-
|
|
200
|
-
def _get_legacy_prompt(self, context: dict) -> str:
|
|
201
|
-
"""Generate legacy non-XML prompt for backward compatibility."""
|
|
202
|
-
context_str = "\n".join(f"- {k}: {v}" for k, v in context.items() if v)
|
|
203
|
-
return f"""{self.description}
|
|
204
|
-
|
|
205
|
-
Context:
|
|
206
|
-
{context_str}
|
|
207
|
-
|
|
208
|
-
Expected output format: {self.expected_output}"""
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def parse_xml_response(response: str) -> dict[str, Any]:
|
|
212
|
-
"""Parse XML-structured agent response.
|
|
213
|
-
|
|
214
|
-
Extracts <thinking> and <answer> tags from agent responses for better
|
|
215
|
-
debugging and transparency.
|
|
216
|
-
|
|
217
|
-
Args:
|
|
218
|
-
response: Raw agent response potentially containing XML tags
|
|
219
|
-
|
|
220
|
-
Returns:
|
|
221
|
-
Dictionary with:
|
|
222
|
-
- thinking: Agent's reasoning process (empty if not found)
|
|
223
|
-
- answer: Agent's final output (or full response if no tags)
|
|
224
|
-
- raw: Original unprocessed response
|
|
225
|
-
- has_structure: True if both thinking and answer tags found
|
|
226
|
-
|
|
227
|
-
Example:
|
|
228
|
-
>>> response = "<thinking>I analyzed...</thinking><answer>Result</answer>"
|
|
229
|
-
>>> parsed = parse_xml_response(response)
|
|
230
|
-
>>> parsed['thinking']
|
|
231
|
-
'I analyzed...'
|
|
232
|
-
>>> parsed['answer']
|
|
233
|
-
'Result'
|
|
234
|
-
>>> parsed['has_structure']
|
|
235
|
-
True
|
|
236
|
-
"""
|
|
237
|
-
thinking_match = re.search(r"<thinking>(.*?)</thinking>", response, re.DOTALL)
|
|
238
|
-
answer_match = re.search(r"<answer>(.*?)</answer>", response, re.DOTALL)
|
|
239
|
-
|
|
240
|
-
return {
|
|
241
|
-
"thinking": thinking_match.group(1).strip() if thinking_match else "",
|
|
242
|
-
"answer": answer_match.group(1).strip() if answer_match else response.strip(),
|
|
243
|
-
"raw": response,
|
|
244
|
-
"has_structure": bool(thinking_match and answer_match),
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
def extract_json_from_answer(answer: str) -> dict | None:
|
|
249
|
-
"""Extract JSON from answer tag if present.
|
|
250
|
-
|
|
251
|
-
Attempts to parse JSON from code blocks or the entire answer.
|
|
252
|
-
|
|
253
|
-
Args:
|
|
254
|
-
answer: The answer portion of a parsed response
|
|
255
|
-
|
|
256
|
-
Returns:
|
|
257
|
-
Parsed JSON dict if found, None otherwise
|
|
258
|
-
|
|
259
|
-
Example:
|
|
260
|
-
>>> answer = "Here's the result: ```json\\n{'status': 'ok'}\\n```"
|
|
261
|
-
>>> extract_json_from_answer(answer)
|
|
262
|
-
{'status': 'ok'}
|
|
263
|
-
"""
|
|
264
|
-
import json
|
|
265
|
-
|
|
266
|
-
# Try to find JSON in code blocks first
|
|
267
|
-
json_match = re.search(r"```json\s*(.*?)\s*```", answer, re.DOTALL)
|
|
268
|
-
if json_match:
|
|
269
|
-
try:
|
|
270
|
-
result = json.loads(json_match.group(1))
|
|
271
|
-
return result if isinstance(result, dict) else None
|
|
272
|
-
except json.JSONDecodeError:
|
|
273
|
-
pass
|
|
274
|
-
|
|
275
|
-
# Try to parse entire answer as JSON
|
|
276
|
-
try:
|
|
277
|
-
result = json.loads(answer)
|
|
278
|
-
return result if isinstance(result, dict) else None
|
|
279
|
-
except json.JSONDecodeError:
|
|
280
|
-
return None
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
# Backward compatibility aliases
|
|
284
|
-
Agent = XMLAgent
|
|
285
|
-
Task = XMLTask
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Software Development Plugin
|
|
2
|
-
|
|
3
|
-
> **DEPRECATION NOTICE (January 2026):** The `empathy_software_plugin.wizards` module has been removed. Please use CLI workflows instead.
|
|
4
|
-
|
|
5
|
-
Production-ready analysis tools for software development.
|
|
6
|
-
|
|
7
|
-
**Copyright 2025-2026 Smart AI Memory, LLC**
|
|
8
|
-
**Licensed under Fair Source 0.9**
|
|
9
|
-
|
|
10
|
-
## Overview
|
|
11
|
-
|
|
12
|
-
The Software Development Plugin provides analysis capabilities through CLI workflows.
|
|
13
|
-
|
|
14
|
-
## Recommended Approach
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# Security analysis
|
|
18
|
-
empathy workflow run security-audit --path ./src
|
|
19
|
-
|
|
20
|
-
# Bug prediction
|
|
21
|
-
empathy workflow run bug-predict --path ./src
|
|
22
|
-
|
|
23
|
-
# Test coverage analysis
|
|
24
|
-
empathy workflow run test-coverage --path ./src
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Or use the Python workflow API:
|
|
28
|
-
|
|
29
|
-
```python
|
|
30
|
-
from empathy_os.workflows import BugPredictWorkflow
|
|
31
|
-
|
|
32
|
-
workflow = BugPredictWorkflow()
|
|
33
|
-
result = await workflow.execute(target_path="./src")
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Migration Guide
|
|
37
|
-
|
|
38
|
-
| Old Wizard | New Approach |
|
|
39
|
-
|------------|--------------|
|
|
40
|
-
| `EnhancedTestingWizard` | `empathy workflow run test-coverage` |
|
|
41
|
-
| `PerformanceProfilingWizard` | `empathy workflow run profile` |
|
|
42
|
-
| `SecurityAnalysisWizard` | `empathy workflow run security-audit` |
|
|
43
|
-
|
|
44
|
-
## Installation
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
pip install empathy-framework
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Support
|
|
51
|
-
|
|
52
|
-
- **Documentation:** [docs/](../docs/)
|
|
53
|
-
- **Issues:** [GitHub Issues](https://github.com/deepstudyai/empathy/issues)
|
|
54
|
-
|
|
55
|
-
## License
|
|
56
|
-
|
|
57
|
-
Copyright 2025-2026 Smart AI Memory, LLC - Licensed under Fair Source 0.9
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"""CLI tools for the Empathy Software Plugin.
|
|
2
|
-
|
|
3
|
-
This package exists alongside a legacy ``cli.py`` module at the
|
|
4
|
-
package root. To maintain backwards compatibility with existing
|
|
5
|
-
callers and tests, we dynamically import the root ``cli.py`` and
|
|
6
|
-
re-export its public API from here.
|
|
7
|
-
|
|
8
|
-
Tests also expect a couple of small helper functions to exist at the
|
|
9
|
-
package level:
|
|
10
|
-
|
|
11
|
-
* ``get_logger()`` – returns the configured logger instance
|
|
12
|
-
* ``get_global_registry()`` – indirection around the plugin registry
|
|
13
|
-
|
|
14
|
-
These helpers make the CLI easier to patch in tests while keeping the
|
|
15
|
-
core implementation in the shared registry module.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
import importlib.util
|
|
19
|
-
import os
|
|
20
|
-
from typing import Any
|
|
21
|
-
|
|
22
|
-
from .inspect import main as inspect_main
|
|
23
|
-
|
|
24
|
-
# Re-export from parent cli.py module for backwards compatibility
|
|
25
|
-
# This handles the cli/ package shadowing the cli.py file
|
|
26
|
-
_parent_dir = os.path.dirname(os.path.dirname(__file__))
|
|
27
|
-
_cli_module_path = os.path.join(_parent_dir, "cli.py")
|
|
28
|
-
|
|
29
|
-
logger = None # Will be populated if cli.py is found
|
|
30
|
-
Colors = None # type: ignore[assignment]
|
|
31
|
-
analyze_project = None # type: ignore[assignment]
|
|
32
|
-
display_wizard_results = None # type: ignore[assignment]
|
|
33
|
-
gather_project_context = None # type: ignore[assignment]
|
|
34
|
-
list_wizards = None # type: ignore[assignment]
|
|
35
|
-
main = None # type: ignore[assignment]
|
|
36
|
-
scan_command = None # type: ignore[assignment]
|
|
37
|
-
wizard_info = None # type: ignore[assignment]
|
|
38
|
-
print_header = None # type: ignore[assignment]
|
|
39
|
-
print_alert = None # type: ignore[assignment]
|
|
40
|
-
print_success = None # type: ignore[assignment]
|
|
41
|
-
print_error = None # type: ignore[assignment]
|
|
42
|
-
print_info = None # type: ignore[assignment]
|
|
43
|
-
print_summary = None # type: ignore[assignment]
|
|
44
|
-
parse_ai_calls = None # type: ignore[assignment]
|
|
45
|
-
parse_git_history = None # type: ignore[assignment]
|
|
46
|
-
prepare_wizard_context = None # type: ignore[assignment]
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if os.path.exists(_cli_module_path):
|
|
50
|
-
_spec = importlib.util.spec_from_file_location("_cli_module", _cli_module_path)
|
|
51
|
-
if _spec is not None and _spec.loader is not None:
|
|
52
|
-
_cli_module = importlib.util.module_from_spec(_spec)
|
|
53
|
-
_spec.loader.exec_module(_cli_module)
|
|
54
|
-
|
|
55
|
-
# Re-export all items from cli.py
|
|
56
|
-
logger = _cli_module.logger
|
|
57
|
-
Colors = _cli_module.Colors
|
|
58
|
-
analyze_project = _cli_module.analyze_project
|
|
59
|
-
display_wizard_results = _cli_module.display_wizard_results
|
|
60
|
-
gather_project_context = _cli_module.gather_project_context
|
|
61
|
-
list_wizards = _cli_module.list_wizards
|
|
62
|
-
main = _cli_module.main
|
|
63
|
-
scan_command = _cli_module.scan_command
|
|
64
|
-
wizard_info = _cli_module.wizard_info
|
|
65
|
-
print_header = _cli_module.print_header
|
|
66
|
-
print_alert = _cli_module.print_alert
|
|
67
|
-
print_success = _cli_module.print_success
|
|
68
|
-
print_error = _cli_module.print_error
|
|
69
|
-
print_info = _cli_module.print_info
|
|
70
|
-
print_summary = _cli_module.print_summary
|
|
71
|
-
parse_ai_calls = _cli_module.parse_ai_calls
|
|
72
|
-
parse_git_history = _cli_module.parse_git_history
|
|
73
|
-
prepare_wizard_context = _cli_module.prepare_wizard_context
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def get_logger():
|
|
77
|
-
"""Return the CLI logger instance.
|
|
78
|
-
|
|
79
|
-
This thin wrapper exists so tests can patch the logger via
|
|
80
|
-
``empathy_software_plugin.cli.get_logger`` without reaching into
|
|
81
|
-
the underlying implementation module.
|
|
82
|
-
"""
|
|
83
|
-
return logger
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
def get_global_registry() -> Any:
|
|
87
|
-
"""Return the global plugin registry used by the software plugin.
|
|
88
|
-
|
|
89
|
-
The concrete implementation lives in the core plugin registry
|
|
90
|
-
module. We import lazily to avoid import cycles and to keep this
|
|
91
|
-
function easy to patch in tests via ``unittest.mock.patch``.
|
|
92
|
-
"""
|
|
93
|
-
from empathy_os.plugins.registry import get_global_registry as _get_global_registry
|
|
94
|
-
|
|
95
|
-
return _get_global_registry()
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
__all__ = [
|
|
99
|
-
"Colors",
|
|
100
|
-
"analyze_project",
|
|
101
|
-
"display_wizard_results",
|
|
102
|
-
"gather_project_context",
|
|
103
|
-
"get_global_registry",
|
|
104
|
-
"get_logger",
|
|
105
|
-
"inspect_main",
|
|
106
|
-
"list_wizards",
|
|
107
|
-
"logger",
|
|
108
|
-
"main",
|
|
109
|
-
"parse_ai_calls",
|
|
110
|
-
"parse_git_history",
|
|
111
|
-
"prepare_wizard_context",
|
|
112
|
-
"print_alert",
|
|
113
|
-
"print_error",
|
|
114
|
-
"print_header",
|
|
115
|
-
"print_info",
|
|
116
|
-
"print_success",
|
|
117
|
-
"print_summary",
|
|
118
|
-
"scan_command",
|
|
119
|
-
"wizard_info",
|
|
120
|
-
]
|