attune-ai 2.0.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.
- attune/__init__.py +358 -0
- attune/adaptive/__init__.py +13 -0
- attune/adaptive/task_complexity.py +127 -0
- attune/agent_monitoring.py +414 -0
- attune/cache/__init__.py +117 -0
- attune/cache/base.py +166 -0
- attune/cache/dependency_manager.py +256 -0
- attune/cache/hash_only.py +251 -0
- attune/cache/hybrid.py +457 -0
- attune/cache/storage.py +285 -0
- attune/cache_monitor.py +356 -0
- attune/cache_stats.py +298 -0
- attune/cli/__init__.py +152 -0
- attune/cli/__main__.py +12 -0
- attune/cli/commands/__init__.py +1 -0
- attune/cli/commands/batch.py +264 -0
- attune/cli/commands/cache.py +248 -0
- attune/cli/commands/help.py +331 -0
- attune/cli/commands/info.py +140 -0
- attune/cli/commands/inspect.py +436 -0
- attune/cli/commands/inspection.py +57 -0
- attune/cli/commands/memory.py +48 -0
- attune/cli/commands/metrics.py +92 -0
- attune/cli/commands/orchestrate.py +184 -0
- attune/cli/commands/patterns.py +207 -0
- attune/cli/commands/profiling.py +202 -0
- attune/cli/commands/provider.py +98 -0
- attune/cli/commands/routing.py +285 -0
- attune/cli/commands/setup.py +96 -0
- attune/cli/commands/status.py +235 -0
- attune/cli/commands/sync.py +166 -0
- attune/cli/commands/tier.py +121 -0
- attune/cli/commands/utilities.py +114 -0
- attune/cli/commands/workflow.py +579 -0
- attune/cli/core.py +32 -0
- attune/cli/parsers/__init__.py +68 -0
- attune/cli/parsers/batch.py +118 -0
- attune/cli/parsers/cache.py +65 -0
- attune/cli/parsers/help.py +41 -0
- attune/cli/parsers/info.py +26 -0
- attune/cli/parsers/inspect.py +66 -0
- attune/cli/parsers/metrics.py +42 -0
- attune/cli/parsers/orchestrate.py +61 -0
- attune/cli/parsers/patterns.py +54 -0
- attune/cli/parsers/provider.py +40 -0
- attune/cli/parsers/routing.py +110 -0
- attune/cli/parsers/setup.py +42 -0
- attune/cli/parsers/status.py +47 -0
- attune/cli/parsers/sync.py +31 -0
- attune/cli/parsers/tier.py +33 -0
- attune/cli/parsers/workflow.py +77 -0
- attune/cli/utils/__init__.py +1 -0
- attune/cli/utils/data.py +242 -0
- attune/cli/utils/helpers.py +68 -0
- attune/cli_legacy.py +3957 -0
- attune/cli_minimal.py +1159 -0
- attune/cli_router.py +437 -0
- attune/cli_unified.py +814 -0
- attune/config/__init__.py +66 -0
- attune/config/xml_config.py +286 -0
- attune/config.py +545 -0
- attune/coordination.py +870 -0
- attune/core.py +1511 -0
- attune/core_modules/__init__.py +15 -0
- attune/cost_tracker.py +626 -0
- attune/dashboard/__init__.py +41 -0
- attune/dashboard/app.py +512 -0
- attune/dashboard/simple_server.py +435 -0
- attune/dashboard/standalone_server.py +547 -0
- attune/discovery.py +306 -0
- attune/emergence.py +306 -0
- attune/exceptions.py +123 -0
- attune/feedback_loops.py +373 -0
- attune/hot_reload/README.md +473 -0
- attune/hot_reload/__init__.py +62 -0
- attune/hot_reload/config.py +83 -0
- attune/hot_reload/integration.py +229 -0
- attune/hot_reload/reloader.py +298 -0
- attune/hot_reload/watcher.py +183 -0
- attune/hot_reload/websocket.py +177 -0
- attune/levels.py +577 -0
- attune/leverage_points.py +441 -0
- attune/logging_config.py +261 -0
- attune/mcp/__init__.py +10 -0
- attune/mcp/server.py +506 -0
- attune/memory/__init__.py +237 -0
- attune/memory/claude_memory.py +469 -0
- attune/memory/config.py +224 -0
- attune/memory/control_panel.py +1290 -0
- attune/memory/control_panel_support.py +145 -0
- attune/memory/cross_session.py +845 -0
- attune/memory/edges.py +179 -0
- attune/memory/encryption.py +159 -0
- attune/memory/file_session.py +770 -0
- attune/memory/graph.py +570 -0
- attune/memory/long_term.py +913 -0
- attune/memory/long_term_types.py +99 -0
- attune/memory/mixins/__init__.py +25 -0
- attune/memory/mixins/backend_init_mixin.py +249 -0
- attune/memory/mixins/capabilities_mixin.py +208 -0
- attune/memory/mixins/handoff_mixin.py +208 -0
- attune/memory/mixins/lifecycle_mixin.py +49 -0
- attune/memory/mixins/long_term_mixin.py +352 -0
- attune/memory/mixins/promotion_mixin.py +109 -0
- attune/memory/mixins/short_term_mixin.py +182 -0
- attune/memory/nodes.py +179 -0
- attune/memory/redis_bootstrap.py +540 -0
- attune/memory/security/__init__.py +31 -0
- attune/memory/security/audit_logger.py +932 -0
- attune/memory/security/pii_scrubber.py +640 -0
- attune/memory/security/secrets_detector.py +678 -0
- attune/memory/short_term.py +2192 -0
- attune/memory/simple_storage.py +302 -0
- attune/memory/storage/__init__.py +15 -0
- attune/memory/storage_backend.py +167 -0
- attune/memory/summary_index.py +583 -0
- attune/memory/types.py +446 -0
- attune/memory/unified.py +182 -0
- attune/meta_workflows/__init__.py +74 -0
- attune/meta_workflows/agent_creator.py +248 -0
- attune/meta_workflows/builtin_templates.py +567 -0
- attune/meta_workflows/cli_commands/__init__.py +56 -0
- attune/meta_workflows/cli_commands/agent_commands.py +321 -0
- attune/meta_workflows/cli_commands/analytics_commands.py +442 -0
- attune/meta_workflows/cli_commands/config_commands.py +232 -0
- attune/meta_workflows/cli_commands/memory_commands.py +182 -0
- attune/meta_workflows/cli_commands/template_commands.py +354 -0
- attune/meta_workflows/cli_commands/workflow_commands.py +382 -0
- attune/meta_workflows/cli_meta_workflows.py +59 -0
- attune/meta_workflows/form_engine.py +292 -0
- attune/meta_workflows/intent_detector.py +409 -0
- attune/meta_workflows/models.py +569 -0
- attune/meta_workflows/pattern_learner.py +738 -0
- attune/meta_workflows/plan_generator.py +384 -0
- attune/meta_workflows/session_context.py +397 -0
- attune/meta_workflows/template_registry.py +229 -0
- attune/meta_workflows/workflow.py +984 -0
- attune/metrics/__init__.py +12 -0
- attune/metrics/collector.py +31 -0
- attune/metrics/prompt_metrics.py +194 -0
- attune/models/__init__.py +172 -0
- attune/models/__main__.py +13 -0
- attune/models/adaptive_routing.py +437 -0
- attune/models/auth_cli.py +444 -0
- attune/models/auth_strategy.py +450 -0
- attune/models/cli.py +655 -0
- attune/models/empathy_executor.py +354 -0
- attune/models/executor.py +257 -0
- attune/models/fallback.py +762 -0
- attune/models/provider_config.py +282 -0
- attune/models/registry.py +472 -0
- attune/models/tasks.py +359 -0
- attune/models/telemetry/__init__.py +71 -0
- attune/models/telemetry/analytics.py +594 -0
- attune/models/telemetry/backend.py +196 -0
- attune/models/telemetry/data_models.py +431 -0
- attune/models/telemetry/storage.py +489 -0
- attune/models/token_estimator.py +420 -0
- attune/models/validation.py +280 -0
- attune/monitoring/__init__.py +52 -0
- attune/monitoring/alerts.py +946 -0
- attune/monitoring/alerts_cli.py +448 -0
- attune/monitoring/multi_backend.py +271 -0
- attune/monitoring/otel_backend.py +362 -0
- attune/optimization/__init__.py +19 -0
- attune/optimization/context_optimizer.py +272 -0
- attune/orchestration/__init__.py +67 -0
- attune/orchestration/agent_templates.py +707 -0
- attune/orchestration/config_store.py +499 -0
- attune/orchestration/execution_strategies.py +2111 -0
- attune/orchestration/meta_orchestrator.py +1168 -0
- attune/orchestration/pattern_learner.py +696 -0
- attune/orchestration/real_tools.py +931 -0
- attune/pattern_cache.py +187 -0
- attune/pattern_library.py +542 -0
- attune/patterns/debugging/all_patterns.json +81 -0
- attune/patterns/debugging/workflow_20260107_1770825e.json +77 -0
- attune/patterns/refactoring_memory.json +89 -0
- attune/persistence.py +564 -0
- attune/platform_utils.py +265 -0
- attune/plugins/__init__.py +28 -0
- attune/plugins/base.py +361 -0
- attune/plugins/registry.py +268 -0
- attune/project_index/__init__.py +32 -0
- attune/project_index/cli.py +335 -0
- attune/project_index/index.py +667 -0
- attune/project_index/models.py +504 -0
- attune/project_index/reports.py +474 -0
- attune/project_index/scanner.py +777 -0
- attune/project_index/scanner_parallel.py +291 -0
- attune/prompts/__init__.py +61 -0
- attune/prompts/config.py +77 -0
- attune/prompts/context.py +177 -0
- attune/prompts/parser.py +285 -0
- attune/prompts/registry.py +313 -0
- attune/prompts/templates.py +208 -0
- attune/redis_config.py +302 -0
- attune/redis_memory.py +799 -0
- attune/resilience/__init__.py +56 -0
- attune/resilience/circuit_breaker.py +256 -0
- attune/resilience/fallback.py +179 -0
- attune/resilience/health.py +300 -0
- attune/resilience/retry.py +209 -0
- attune/resilience/timeout.py +135 -0
- attune/routing/__init__.py +43 -0
- attune/routing/chain_executor.py +433 -0
- attune/routing/classifier.py +217 -0
- attune/routing/smart_router.py +234 -0
- attune/routing/workflow_registry.py +343 -0
- attune/scaffolding/README.md +589 -0
- attune/scaffolding/__init__.py +35 -0
- attune/scaffolding/__main__.py +14 -0
- attune/scaffolding/cli.py +240 -0
- attune/scaffolding/templates/base_wizard.py.jinja2 +121 -0
- attune/scaffolding/templates/coach_wizard.py.jinja2 +321 -0
- attune/scaffolding/templates/domain_wizard.py.jinja2 +408 -0
- attune/scaffolding/templates/linear_flow_wizard.py.jinja2 +203 -0
- attune/socratic/__init__.py +256 -0
- attune/socratic/ab_testing.py +958 -0
- attune/socratic/blueprint.py +533 -0
- attune/socratic/cli.py +703 -0
- attune/socratic/collaboration.py +1114 -0
- attune/socratic/domain_templates.py +924 -0
- attune/socratic/embeddings.py +738 -0
- attune/socratic/engine.py +794 -0
- attune/socratic/explainer.py +682 -0
- attune/socratic/feedback.py +772 -0
- attune/socratic/forms.py +629 -0
- attune/socratic/generator.py +732 -0
- attune/socratic/llm_analyzer.py +637 -0
- attune/socratic/mcp_server.py +702 -0
- attune/socratic/session.py +312 -0
- attune/socratic/storage.py +667 -0
- attune/socratic/success.py +730 -0
- attune/socratic/visual_editor.py +860 -0
- attune/socratic/web_ui.py +958 -0
- attune/telemetry/__init__.py +39 -0
- attune/telemetry/agent_coordination.py +475 -0
- attune/telemetry/agent_tracking.py +367 -0
- attune/telemetry/approval_gates.py +545 -0
- attune/telemetry/cli.py +1231 -0
- attune/telemetry/commands/__init__.py +14 -0
- attune/telemetry/commands/dashboard_commands.py +696 -0
- attune/telemetry/event_streaming.py +409 -0
- attune/telemetry/feedback_loop.py +567 -0
- attune/telemetry/usage_tracker.py +591 -0
- attune/templates.py +754 -0
- attune/test_generator/__init__.py +38 -0
- attune/test_generator/__main__.py +14 -0
- attune/test_generator/cli.py +234 -0
- attune/test_generator/generator.py +355 -0
- attune/test_generator/risk_analyzer.py +216 -0
- attune/test_generator/templates/unit_test.py.jinja2 +272 -0
- attune/tier_recommender.py +384 -0
- attune/tools.py +183 -0
- attune/trust/__init__.py +28 -0
- attune/trust/circuit_breaker.py +579 -0
- attune/trust_building.py +527 -0
- attune/validation/__init__.py +19 -0
- attune/validation/xml_validator.py +281 -0
- attune/vscode_bridge.py +173 -0
- attune/workflow_commands.py +780 -0
- attune/workflow_patterns/__init__.py +33 -0
- attune/workflow_patterns/behavior.py +249 -0
- attune/workflow_patterns/core.py +76 -0
- attune/workflow_patterns/output.py +99 -0
- attune/workflow_patterns/registry.py +255 -0
- attune/workflow_patterns/structural.py +288 -0
- attune/workflows/__init__.py +539 -0
- attune/workflows/autonomous_test_gen.py +1268 -0
- attune/workflows/base.py +2667 -0
- attune/workflows/batch_processing.py +342 -0
- attune/workflows/bug_predict.py +1084 -0
- attune/workflows/builder.py +273 -0
- attune/workflows/caching.py +253 -0
- attune/workflows/code_review.py +1048 -0
- attune/workflows/code_review_adapters.py +312 -0
- attune/workflows/code_review_pipeline.py +722 -0
- attune/workflows/config.py +645 -0
- attune/workflows/dependency_check.py +644 -0
- attune/workflows/document_gen/__init__.py +25 -0
- attune/workflows/document_gen/config.py +30 -0
- attune/workflows/document_gen/report_formatter.py +162 -0
- attune/workflows/document_gen/workflow.py +1426 -0
- attune/workflows/document_manager.py +216 -0
- attune/workflows/document_manager_README.md +134 -0
- attune/workflows/documentation_orchestrator.py +1205 -0
- attune/workflows/history.py +510 -0
- attune/workflows/keyboard_shortcuts/__init__.py +39 -0
- attune/workflows/keyboard_shortcuts/generators.py +391 -0
- attune/workflows/keyboard_shortcuts/parsers.py +416 -0
- attune/workflows/keyboard_shortcuts/prompts.py +295 -0
- attune/workflows/keyboard_shortcuts/schema.py +193 -0
- attune/workflows/keyboard_shortcuts/workflow.py +509 -0
- attune/workflows/llm_base.py +363 -0
- attune/workflows/manage_docs.py +87 -0
- attune/workflows/manage_docs_README.md +134 -0
- attune/workflows/manage_documentation.py +821 -0
- attune/workflows/new_sample_workflow1.py +149 -0
- attune/workflows/new_sample_workflow1_README.md +150 -0
- attune/workflows/orchestrated_health_check.py +849 -0
- attune/workflows/orchestrated_release_prep.py +600 -0
- attune/workflows/output.py +413 -0
- attune/workflows/perf_audit.py +863 -0
- attune/workflows/pr_review.py +762 -0
- attune/workflows/progress.py +785 -0
- attune/workflows/progress_server.py +322 -0
- attune/workflows/progressive/README 2.md +454 -0
- attune/workflows/progressive/README.md +454 -0
- attune/workflows/progressive/__init__.py +82 -0
- attune/workflows/progressive/cli.py +219 -0
- attune/workflows/progressive/core.py +488 -0
- attune/workflows/progressive/orchestrator.py +723 -0
- attune/workflows/progressive/reports.py +520 -0
- attune/workflows/progressive/telemetry.py +274 -0
- attune/workflows/progressive/test_gen.py +495 -0
- attune/workflows/progressive/workflow.py +589 -0
- attune/workflows/refactor_plan.py +694 -0
- attune/workflows/release_prep.py +895 -0
- attune/workflows/release_prep_crew.py +969 -0
- attune/workflows/research_synthesis.py +404 -0
- attune/workflows/routing.py +168 -0
- attune/workflows/secure_release.py +593 -0
- attune/workflows/security_adapters.py +297 -0
- attune/workflows/security_audit.py +1329 -0
- attune/workflows/security_audit_phase3.py +355 -0
- attune/workflows/seo_optimization.py +633 -0
- attune/workflows/step_config.py +234 -0
- attune/workflows/telemetry_mixin.py +269 -0
- attune/workflows/test5.py +125 -0
- attune/workflows/test5_README.md +158 -0
- attune/workflows/test_coverage_boost_crew.py +849 -0
- attune/workflows/test_gen/__init__.py +52 -0
- attune/workflows/test_gen/ast_analyzer.py +249 -0
- attune/workflows/test_gen/config.py +88 -0
- attune/workflows/test_gen/data_models.py +38 -0
- attune/workflows/test_gen/report_formatter.py +289 -0
- attune/workflows/test_gen/test_templates.py +381 -0
- attune/workflows/test_gen/workflow.py +655 -0
- attune/workflows/test_gen.py +54 -0
- attune/workflows/test_gen_behavioral.py +477 -0
- attune/workflows/test_gen_parallel.py +341 -0
- attune/workflows/test_lifecycle.py +526 -0
- attune/workflows/test_maintenance.py +627 -0
- attune/workflows/test_maintenance_cli.py +590 -0
- attune/workflows/test_maintenance_crew.py +840 -0
- attune/workflows/test_runner.py +622 -0
- attune/workflows/tier_tracking.py +531 -0
- attune/workflows/xml_enhanced_crew.py +285 -0
- attune_ai-2.0.0.dist-info/METADATA +1026 -0
- attune_ai-2.0.0.dist-info/RECORD +457 -0
- attune_ai-2.0.0.dist-info/WHEEL +5 -0
- attune_ai-2.0.0.dist-info/entry_points.txt +26 -0
- attune_ai-2.0.0.dist-info/licenses/LICENSE +201 -0
- attune_ai-2.0.0.dist-info/licenses/LICENSE_CHANGE_ANNOUNCEMENT.md +101 -0
- attune_ai-2.0.0.dist-info/top_level.txt +5 -0
- attune_healthcare/__init__.py +13 -0
- attune_healthcare/monitors/__init__.py +9 -0
- attune_healthcare/monitors/clinical_protocol_monitor.py +315 -0
- attune_healthcare/monitors/monitoring/__init__.py +44 -0
- attune_healthcare/monitors/monitoring/protocol_checker.py +300 -0
- attune_healthcare/monitors/monitoring/protocol_loader.py +214 -0
- attune_healthcare/monitors/monitoring/sensor_parsers.py +306 -0
- attune_healthcare/monitors/monitoring/trajectory_analyzer.py +389 -0
- attune_llm/README.md +553 -0
- attune_llm/__init__.py +28 -0
- attune_llm/agent_factory/__init__.py +53 -0
- attune_llm/agent_factory/adapters/__init__.py +85 -0
- attune_llm/agent_factory/adapters/autogen_adapter.py +312 -0
- attune_llm/agent_factory/adapters/crewai_adapter.py +483 -0
- attune_llm/agent_factory/adapters/haystack_adapter.py +298 -0
- attune_llm/agent_factory/adapters/langchain_adapter.py +362 -0
- attune_llm/agent_factory/adapters/langgraph_adapter.py +333 -0
- attune_llm/agent_factory/adapters/native.py +228 -0
- attune_llm/agent_factory/adapters/wizard_adapter.py +423 -0
- attune_llm/agent_factory/base.py +305 -0
- attune_llm/agent_factory/crews/__init__.py +67 -0
- attune_llm/agent_factory/crews/code_review.py +1113 -0
- attune_llm/agent_factory/crews/health_check.py +1262 -0
- attune_llm/agent_factory/crews/refactoring.py +1128 -0
- attune_llm/agent_factory/crews/security_audit.py +1018 -0
- attune_llm/agent_factory/decorators.py +287 -0
- attune_llm/agent_factory/factory.py +558 -0
- attune_llm/agent_factory/framework.py +193 -0
- attune_llm/agent_factory/memory_integration.py +328 -0
- attune_llm/agent_factory/resilient.py +320 -0
- attune_llm/agents_md/__init__.py +22 -0
- attune_llm/agents_md/loader.py +218 -0
- attune_llm/agents_md/parser.py +271 -0
- attune_llm/agents_md/registry.py +307 -0
- attune_llm/claude_memory.py +466 -0
- attune_llm/cli/__init__.py +8 -0
- attune_llm/cli/sync_claude.py +487 -0
- attune_llm/code_health.py +1313 -0
- attune_llm/commands/__init__.py +51 -0
- attune_llm/commands/context.py +375 -0
- attune_llm/commands/loader.py +301 -0
- attune_llm/commands/models.py +231 -0
- attune_llm/commands/parser.py +371 -0
- attune_llm/commands/registry.py +429 -0
- attune_llm/config/__init__.py +29 -0
- attune_llm/config/unified.py +291 -0
- attune_llm/context/__init__.py +22 -0
- attune_llm/context/compaction.py +455 -0
- attune_llm/context/manager.py +434 -0
- attune_llm/contextual_patterns.py +361 -0
- attune_llm/core.py +907 -0
- attune_llm/git_pattern_extractor.py +435 -0
- attune_llm/hooks/__init__.py +24 -0
- attune_llm/hooks/config.py +306 -0
- attune_llm/hooks/executor.py +289 -0
- attune_llm/hooks/registry.py +302 -0
- attune_llm/hooks/scripts/__init__.py +39 -0
- attune_llm/hooks/scripts/evaluate_session.py +201 -0
- attune_llm/hooks/scripts/first_time_init.py +285 -0
- attune_llm/hooks/scripts/pre_compact.py +207 -0
- attune_llm/hooks/scripts/session_end.py +183 -0
- attune_llm/hooks/scripts/session_start.py +163 -0
- attune_llm/hooks/scripts/suggest_compact.py +225 -0
- attune_llm/learning/__init__.py +30 -0
- attune_llm/learning/evaluator.py +438 -0
- attune_llm/learning/extractor.py +514 -0
- attune_llm/learning/storage.py +560 -0
- attune_llm/levels.py +227 -0
- attune_llm/pattern_confidence.py +414 -0
- attune_llm/pattern_resolver.py +272 -0
- attune_llm/pattern_summary.py +350 -0
- attune_llm/providers.py +967 -0
- attune_llm/routing/__init__.py +32 -0
- attune_llm/routing/model_router.py +362 -0
- attune_llm/security/IMPLEMENTATION_SUMMARY.md +413 -0
- attune_llm/security/PHASE2_COMPLETE.md +384 -0
- attune_llm/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
- attune_llm/security/QUICK_REFERENCE.md +316 -0
- attune_llm/security/README.md +262 -0
- attune_llm/security/__init__.py +62 -0
- attune_llm/security/audit_logger.py +929 -0
- attune_llm/security/audit_logger_example.py +152 -0
- attune_llm/security/pii_scrubber.py +640 -0
- attune_llm/security/secrets_detector.py +678 -0
- attune_llm/security/secrets_detector_example.py +304 -0
- attune_llm/security/secure_memdocs.py +1192 -0
- attune_llm/security/secure_memdocs_example.py +278 -0
- attune_llm/session_status.py +745 -0
- attune_llm/state.py +246 -0
- attune_llm/utils/__init__.py +5 -0
- attune_llm/utils/tokens.py +349 -0
- attune_software/SOFTWARE_PLUGIN_README.md +57 -0
- attune_software/__init__.py +13 -0
- attune_software/cli/__init__.py +120 -0
- attune_software/cli/inspect.py +362 -0
- attune_software/cli.py +574 -0
- attune_software/plugin.py +188 -0
- workflow_scaffolding/__init__.py +11 -0
- workflow_scaffolding/__main__.py +12 -0
- workflow_scaffolding/cli.py +206 -0
- workflow_scaffolding/generator.py +265 -0
|
@@ -0,0 +1,924 @@
|
|
|
1
|
+
"""Domain-Specific Agent Templates
|
|
2
|
+
|
|
3
|
+
Pre-configured agent templates optimized for specific knowledge domains
|
|
4
|
+
and use cases. Templates include:
|
|
5
|
+
- Agent configurations (role, tools, model tier)
|
|
6
|
+
- Workflow patterns (stages, dependencies)
|
|
7
|
+
- Success metrics
|
|
8
|
+
- Domain-specific prompts and examples
|
|
9
|
+
|
|
10
|
+
Supported Domains:
|
|
11
|
+
- Software Development (code review, testing, refactoring)
|
|
12
|
+
- Security (vulnerability scanning, compliance, penetration testing)
|
|
13
|
+
- Data Science (data validation, model evaluation, reporting)
|
|
14
|
+
- DevOps (CI/CD, infrastructure, monitoring)
|
|
15
|
+
- Legal (contract review, compliance checking)
|
|
16
|
+
- Healthcare (clinical notes, HIPAA compliance)
|
|
17
|
+
- Financial (risk analysis, fraud detection, reporting)
|
|
18
|
+
|
|
19
|
+
Copyright 2026 Smart-AI-Memory
|
|
20
|
+
Licensed under Fair Source License 0.9
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
from __future__ import annotations
|
|
24
|
+
|
|
25
|
+
from dataclasses import dataclass, field
|
|
26
|
+
from enum import Enum
|
|
27
|
+
from typing import Any
|
|
28
|
+
|
|
29
|
+
from .blueprint import AgentRole
|
|
30
|
+
|
|
31
|
+
# =============================================================================
|
|
32
|
+
# DOMAIN DEFINITIONS
|
|
33
|
+
# =============================================================================
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Domain(Enum):
|
|
37
|
+
"""Supported knowledge domains."""
|
|
38
|
+
|
|
39
|
+
# Software Development
|
|
40
|
+
CODE_REVIEW = "code_review"
|
|
41
|
+
TESTING = "testing"
|
|
42
|
+
REFACTORING = "refactoring"
|
|
43
|
+
DOCUMENTATION = "documentation"
|
|
44
|
+
PERFORMANCE = "performance"
|
|
45
|
+
|
|
46
|
+
# Security
|
|
47
|
+
SECURITY_AUDIT = "security_audit"
|
|
48
|
+
VULNERABILITY_SCAN = "vulnerability_scan"
|
|
49
|
+
COMPLIANCE = "compliance"
|
|
50
|
+
PENETRATION_TESTING = "penetration_testing"
|
|
51
|
+
|
|
52
|
+
# Data Science
|
|
53
|
+
DATA_VALIDATION = "data_validation"
|
|
54
|
+
MODEL_EVALUATION = "model_evaluation"
|
|
55
|
+
DATA_PIPELINE = "data_pipeline"
|
|
56
|
+
REPORTING = "reporting"
|
|
57
|
+
|
|
58
|
+
# DevOps
|
|
59
|
+
CI_CD = "ci_cd"
|
|
60
|
+
INFRASTRUCTURE = "infrastructure"
|
|
61
|
+
MONITORING = "monitoring"
|
|
62
|
+
INCIDENT_RESPONSE = "incident_response"
|
|
63
|
+
|
|
64
|
+
# Legal
|
|
65
|
+
CONTRACT_REVIEW = "contract_review"
|
|
66
|
+
LEGAL_COMPLIANCE = "legal_compliance"
|
|
67
|
+
IP_ANALYSIS = "ip_analysis"
|
|
68
|
+
|
|
69
|
+
# Healthcare
|
|
70
|
+
CLINICAL_NOTES = "clinical_notes"
|
|
71
|
+
HIPAA_COMPLIANCE = "hipaa_compliance"
|
|
72
|
+
MEDICAL_CODING = "medical_coding"
|
|
73
|
+
|
|
74
|
+
# Financial
|
|
75
|
+
RISK_ANALYSIS = "risk_analysis"
|
|
76
|
+
FRAUD_DETECTION = "fraud_detection"
|
|
77
|
+
FINANCIAL_REPORTING = "financial_reporting"
|
|
78
|
+
|
|
79
|
+
# General
|
|
80
|
+
GENERAL = "general"
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
# =============================================================================
|
|
84
|
+
# TEMPLATE DATA STRUCTURES
|
|
85
|
+
# =============================================================================
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@dataclass
|
|
89
|
+
class AgentTemplate:
|
|
90
|
+
"""Template for configuring an agent."""
|
|
91
|
+
|
|
92
|
+
template_id: str
|
|
93
|
+
name: str
|
|
94
|
+
description: str
|
|
95
|
+
role: AgentRole
|
|
96
|
+
tools: list[str]
|
|
97
|
+
model_tier: str = "capable" # cheap, capable, premium
|
|
98
|
+
system_prompt: str = ""
|
|
99
|
+
example_prompts: list[str] = field(default_factory=list)
|
|
100
|
+
configuration: dict[str, Any] = field(default_factory=dict)
|
|
101
|
+
tags: list[str] = field(default_factory=list)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
@dataclass
|
|
105
|
+
class WorkflowTemplate:
|
|
106
|
+
"""Template for configuring a workflow."""
|
|
107
|
+
|
|
108
|
+
template_id: str
|
|
109
|
+
name: str
|
|
110
|
+
description: str
|
|
111
|
+
domain: Domain
|
|
112
|
+
agents: list[str] # Agent template IDs
|
|
113
|
+
stages: list[dict[str, Any]]
|
|
114
|
+
success_metrics: list[dict[str, Any]]
|
|
115
|
+
estimated_duration: str # fast, moderate, slow
|
|
116
|
+
estimated_cost: str # cheap, moderate, expensive
|
|
117
|
+
configuration: dict[str, Any] = field(default_factory=dict)
|
|
118
|
+
tags: list[str] = field(default_factory=list)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
@dataclass
|
|
122
|
+
class DomainTemplate:
|
|
123
|
+
"""Complete template for a domain."""
|
|
124
|
+
|
|
125
|
+
domain: Domain
|
|
126
|
+
name: str
|
|
127
|
+
description: str
|
|
128
|
+
agents: list[AgentTemplate]
|
|
129
|
+
workflows: list[WorkflowTemplate]
|
|
130
|
+
default_workflow: str # Default workflow template ID
|
|
131
|
+
keywords: list[str] # Keywords for domain detection
|
|
132
|
+
required_tools: list[str]
|
|
133
|
+
optional_tools: list[str]
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
# =============================================================================
|
|
137
|
+
# AGENT TEMPLATES
|
|
138
|
+
# =============================================================================
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
# Software Development Agents
|
|
142
|
+
CODE_REVIEWER = AgentTemplate(
|
|
143
|
+
template_id="code_reviewer",
|
|
144
|
+
name="Code Reviewer",
|
|
145
|
+
description="Reviews code for quality, maintainability, and best practices",
|
|
146
|
+
role=AgentRole.REVIEWER,
|
|
147
|
+
tools=["read_file", "grep_code", "analyze_ast", "run_linter"],
|
|
148
|
+
model_tier="capable",
|
|
149
|
+
system_prompt="""You are an expert code reviewer focused on code quality and maintainability.
|
|
150
|
+
Review code for:
|
|
151
|
+
- Clear naming and documentation
|
|
152
|
+
- Proper error handling
|
|
153
|
+
- Code organization and structure
|
|
154
|
+
- Adherence to language idioms
|
|
155
|
+
- Potential bugs or logic errors
|
|
156
|
+
- Performance considerations
|
|
157
|
+
|
|
158
|
+
Provide specific, actionable feedback with code examples when helpful.""",
|
|
159
|
+
example_prompts=[
|
|
160
|
+
"Review this function for maintainability issues",
|
|
161
|
+
"Check this module for proper error handling",
|
|
162
|
+
"Analyze this code for potential bugs",
|
|
163
|
+
],
|
|
164
|
+
tags=["code_review", "quality", "maintainability"],
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
SECURITY_SCANNER = AgentTemplate(
|
|
168
|
+
template_id="security_scanner",
|
|
169
|
+
name="Security Scanner",
|
|
170
|
+
description="Scans code for security vulnerabilities and unsafe patterns",
|
|
171
|
+
role=AgentRole.AUDITOR,
|
|
172
|
+
tools=["read_file", "grep_code", "security_scan", "analyze_ast"],
|
|
173
|
+
model_tier="capable",
|
|
174
|
+
system_prompt="""You are a security expert scanning code for vulnerabilities.
|
|
175
|
+
Focus on:
|
|
176
|
+
- OWASP Top 10 vulnerabilities
|
|
177
|
+
- Injection flaws (SQL, command, XSS)
|
|
178
|
+
- Authentication and authorization issues
|
|
179
|
+
- Sensitive data exposure
|
|
180
|
+
- Security misconfigurations
|
|
181
|
+
- Unsafe dependencies
|
|
182
|
+
|
|
183
|
+
Rate each finding by severity (CRITICAL, HIGH, MEDIUM, LOW) and provide remediation guidance.""",
|
|
184
|
+
example_prompts=[
|
|
185
|
+
"Scan this code for SQL injection vulnerabilities",
|
|
186
|
+
"Check authentication implementation for flaws",
|
|
187
|
+
"Review this API for security issues",
|
|
188
|
+
],
|
|
189
|
+
configuration={
|
|
190
|
+
"severity_threshold": "medium",
|
|
191
|
+
"include_cwe": True,
|
|
192
|
+
"include_owasp": True,
|
|
193
|
+
},
|
|
194
|
+
tags=["security", "vulnerability", "audit"],
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
TEST_GENERATOR = AgentTemplate(
|
|
198
|
+
template_id="test_generator",
|
|
199
|
+
name="Test Generator",
|
|
200
|
+
description="Generates unit and integration tests for code",
|
|
201
|
+
role=AgentRole.GENERATOR,
|
|
202
|
+
tools=["read_file", "analyze_ast", "run_tests", "write_file"],
|
|
203
|
+
model_tier="capable",
|
|
204
|
+
system_prompt="""You are an expert test engineer generating comprehensive tests.
|
|
205
|
+
Generate tests that:
|
|
206
|
+
- Cover happy path and edge cases
|
|
207
|
+
- Test error conditions and validation
|
|
208
|
+
- Are independent and deterministic
|
|
209
|
+
- Use appropriate assertions
|
|
210
|
+
- Follow testing best practices for the language
|
|
211
|
+
- Include meaningful test names and documentation
|
|
212
|
+
|
|
213
|
+
Aim for high coverage while keeping tests maintainable.""",
|
|
214
|
+
example_prompts=[
|
|
215
|
+
"Generate unit tests for this function",
|
|
216
|
+
"Create integration tests for this API endpoint",
|
|
217
|
+
"Write tests for error handling scenarios",
|
|
218
|
+
],
|
|
219
|
+
configuration={
|
|
220
|
+
"test_framework": "auto", # Detect from project
|
|
221
|
+
"coverage_target": 80,
|
|
222
|
+
"include_edge_cases": True,
|
|
223
|
+
},
|
|
224
|
+
tags=["testing", "unit_tests", "coverage"],
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
PERFORMANCE_ANALYZER = AgentTemplate(
|
|
228
|
+
template_id="performance_analyzer",
|
|
229
|
+
name="Performance Analyzer",
|
|
230
|
+
description="Analyzes code for performance issues and optimization opportunities",
|
|
231
|
+
role=AgentRole.ANALYZER,
|
|
232
|
+
tools=["read_file", "analyze_ast", "grep_code", "run_profiler"],
|
|
233
|
+
model_tier="capable",
|
|
234
|
+
system_prompt="""You are a performance optimization expert.
|
|
235
|
+
Analyze code for:
|
|
236
|
+
- Time complexity issues (O(n²) patterns, unnecessary iterations)
|
|
237
|
+
- Memory leaks and excessive allocation
|
|
238
|
+
- I/O bottlenecks
|
|
239
|
+
- Database query optimization
|
|
240
|
+
- Caching opportunities
|
|
241
|
+
- Parallelization potential
|
|
242
|
+
|
|
243
|
+
Provide specific optimization suggestions with expected impact.""",
|
|
244
|
+
configuration={
|
|
245
|
+
"complexity_threshold": "O(n^2)",
|
|
246
|
+
"include_memory_analysis": True,
|
|
247
|
+
},
|
|
248
|
+
tags=["performance", "optimization", "profiling"],
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
DOCUMENTATION_WRITER = AgentTemplate(
|
|
252
|
+
template_id="documentation_writer",
|
|
253
|
+
name="Documentation Writer",
|
|
254
|
+
description="Generates and improves code documentation",
|
|
255
|
+
role=AgentRole.GENERATOR,
|
|
256
|
+
tools=["read_file", "analyze_ast", "write_file"],
|
|
257
|
+
model_tier="capable",
|
|
258
|
+
system_prompt="""You are a technical writer creating clear, helpful documentation.
|
|
259
|
+
Generate:
|
|
260
|
+
- Function and class docstrings
|
|
261
|
+
- API documentation
|
|
262
|
+
- README files and guides
|
|
263
|
+
- Architecture documentation
|
|
264
|
+
- Usage examples
|
|
265
|
+
|
|
266
|
+
Documentation should be:
|
|
267
|
+
- Clear and concise
|
|
268
|
+
- Technically accurate
|
|
269
|
+
- Well-organized
|
|
270
|
+
- Include examples where helpful""",
|
|
271
|
+
tags=["documentation", "docstrings", "readme"],
|
|
272
|
+
)
|
|
273
|
+
|
|
274
|
+
REFACTORING_ADVISOR = AgentTemplate(
|
|
275
|
+
template_id="refactoring_advisor",
|
|
276
|
+
name="Refactoring Advisor",
|
|
277
|
+
description="Identifies refactoring opportunities and provides guidance",
|
|
278
|
+
role=AgentRole.ANALYZER,
|
|
279
|
+
tools=["read_file", "analyze_ast", "grep_code"],
|
|
280
|
+
model_tier="capable",
|
|
281
|
+
system_prompt="""You are a software architect identifying refactoring opportunities.
|
|
282
|
+
Look for:
|
|
283
|
+
- Code duplication (DRY violations)
|
|
284
|
+
- Long methods that should be split
|
|
285
|
+
- Complex conditionals that could be simplified
|
|
286
|
+
- Poor abstraction or missing interfaces
|
|
287
|
+
- Coupling issues
|
|
288
|
+
- Design pattern opportunities
|
|
289
|
+
|
|
290
|
+
Prioritize refactorings by impact and risk.""",
|
|
291
|
+
tags=["refactoring", "design", "architecture"],
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
# Security Domain Agents
|
|
295
|
+
COMPLIANCE_AUDITOR = AgentTemplate(
|
|
296
|
+
template_id="compliance_auditor",
|
|
297
|
+
name="Compliance Auditor",
|
|
298
|
+
description="Audits code and configurations for compliance requirements",
|
|
299
|
+
role=AgentRole.AUDITOR,
|
|
300
|
+
tools=["read_file", "grep_code", "security_scan"],
|
|
301
|
+
model_tier="premium",
|
|
302
|
+
system_prompt="""You are a compliance expert auditing for regulatory requirements.
|
|
303
|
+
Check for:
|
|
304
|
+
- SOC 2 compliance requirements
|
|
305
|
+
- GDPR data handling
|
|
306
|
+
- PCI-DSS requirements (if applicable)
|
|
307
|
+
- Industry-specific regulations
|
|
308
|
+
- Internal security policies
|
|
309
|
+
|
|
310
|
+
Document findings with specific control references and remediation steps.""",
|
|
311
|
+
configuration={
|
|
312
|
+
"frameworks": ["soc2", "gdpr", "pci-dss"],
|
|
313
|
+
"evidence_required": True,
|
|
314
|
+
},
|
|
315
|
+
tags=["compliance", "audit", "regulatory"],
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
PENETRATION_TESTER = AgentTemplate(
|
|
319
|
+
template_id="penetration_tester",
|
|
320
|
+
name="Penetration Tester",
|
|
321
|
+
description="Simulates attacks to find exploitable vulnerabilities",
|
|
322
|
+
role=AgentRole.AUDITOR,
|
|
323
|
+
tools=["read_file", "grep_code", "security_scan", "analyze_ast"],
|
|
324
|
+
model_tier="premium",
|
|
325
|
+
system_prompt="""You are a penetration testing expert identifying exploitable vulnerabilities.
|
|
326
|
+
Focus on:
|
|
327
|
+
- Authentication bypass techniques
|
|
328
|
+
- Authorization escalation
|
|
329
|
+
- Injection attack vectors
|
|
330
|
+
- Session management weaknesses
|
|
331
|
+
- API abuse scenarios
|
|
332
|
+
- Business logic flaws
|
|
333
|
+
|
|
334
|
+
For each finding, demonstrate the attack path and provide proof of concept.""",
|
|
335
|
+
configuration={
|
|
336
|
+
"attack_depth": "comprehensive",
|
|
337
|
+
"include_poc": True,
|
|
338
|
+
},
|
|
339
|
+
tags=["security", "penetration_testing", "offensive"],
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
# Data Science Agents
|
|
343
|
+
DATA_VALIDATOR = AgentTemplate(
|
|
344
|
+
template_id="data_validator",
|
|
345
|
+
name="Data Validator",
|
|
346
|
+
description="Validates data quality and schema compliance",
|
|
347
|
+
role=AgentRole.ANALYZER,
|
|
348
|
+
tools=["read_file", "run_script", "grep_code"],
|
|
349
|
+
model_tier="capable",
|
|
350
|
+
system_prompt="""You are a data quality expert validating datasets.
|
|
351
|
+
Check for:
|
|
352
|
+
- Schema compliance
|
|
353
|
+
- Data type correctness
|
|
354
|
+
- Missing values and nulls
|
|
355
|
+
- Outliers and anomalies
|
|
356
|
+
- Consistency across related fields
|
|
357
|
+
- Format validation
|
|
358
|
+
|
|
359
|
+
Generate validation reports with statistics and recommendations.""",
|
|
360
|
+
configuration={
|
|
361
|
+
"null_threshold": 0.05,
|
|
362
|
+
"outlier_method": "iqr",
|
|
363
|
+
},
|
|
364
|
+
tags=["data", "validation", "quality"],
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
MODEL_EVALUATOR = AgentTemplate(
|
|
368
|
+
template_id="model_evaluator",
|
|
369
|
+
name="Model Evaluator",
|
|
370
|
+
description="Evaluates ML model performance and fairness",
|
|
371
|
+
role=AgentRole.ANALYZER,
|
|
372
|
+
tools=["read_file", "run_script", "analyze_ast"],
|
|
373
|
+
model_tier="premium",
|
|
374
|
+
system_prompt="""You are an ML expert evaluating model performance and fairness.
|
|
375
|
+
Analyze:
|
|
376
|
+
- Model accuracy metrics (precision, recall, F1, AUC)
|
|
377
|
+
- Bias and fairness across protected groups
|
|
378
|
+
- Calibration and confidence
|
|
379
|
+
- Feature importance
|
|
380
|
+
- Robustness to distribution shift
|
|
381
|
+
- Explainability
|
|
382
|
+
|
|
383
|
+
Provide recommendations for model improvement.""",
|
|
384
|
+
configuration={
|
|
385
|
+
"fairness_groups": [],
|
|
386
|
+
"confidence_calibration": True,
|
|
387
|
+
},
|
|
388
|
+
tags=["ml", "model", "evaluation", "fairness"],
|
|
389
|
+
)
|
|
390
|
+
|
|
391
|
+
# DevOps Agents
|
|
392
|
+
CI_CD_ANALYZER = AgentTemplate(
|
|
393
|
+
template_id="ci_cd_analyzer",
|
|
394
|
+
name="CI/CD Analyzer",
|
|
395
|
+
description="Analyzes and optimizes CI/CD pipelines",
|
|
396
|
+
role=AgentRole.ANALYZER,
|
|
397
|
+
tools=["read_file", "grep_code", "run_script"],
|
|
398
|
+
model_tier="capable",
|
|
399
|
+
system_prompt="""You are a DevOps expert optimizing CI/CD pipelines.
|
|
400
|
+
Analyze:
|
|
401
|
+
- Pipeline efficiency and parallelization
|
|
402
|
+
- Build time optimization
|
|
403
|
+
- Test reliability and flakiness
|
|
404
|
+
- Deployment safety
|
|
405
|
+
- Rollback capabilities
|
|
406
|
+
- Security scanning integration
|
|
407
|
+
|
|
408
|
+
Provide specific recommendations with expected time savings.""",
|
|
409
|
+
tags=["devops", "ci_cd", "pipeline"],
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
INFRASTRUCTURE_REVIEWER = AgentTemplate(
|
|
413
|
+
template_id="infrastructure_reviewer",
|
|
414
|
+
name="Infrastructure Reviewer",
|
|
415
|
+
description="Reviews infrastructure code and configurations",
|
|
416
|
+
role=AgentRole.REVIEWER,
|
|
417
|
+
tools=["read_file", "grep_code", "security_scan"],
|
|
418
|
+
model_tier="capable",
|
|
419
|
+
system_prompt="""You are an infrastructure expert reviewing IaC and configurations.
|
|
420
|
+
Review:
|
|
421
|
+
- Terraform/CloudFormation/Pulumi code
|
|
422
|
+
- Kubernetes manifests
|
|
423
|
+
- Docker configurations
|
|
424
|
+
- Cloud resource configurations
|
|
425
|
+
- Network security groups
|
|
426
|
+
- IAM policies
|
|
427
|
+
|
|
428
|
+
Check for security, cost optimization, and best practices.""",
|
|
429
|
+
tags=["infrastructure", "iac", "cloud"],
|
|
430
|
+
)
|
|
431
|
+
|
|
432
|
+
INCIDENT_RESPONDER = AgentTemplate(
|
|
433
|
+
template_id="incident_responder",
|
|
434
|
+
name="Incident Responder",
|
|
435
|
+
description="Assists with incident analysis and response",
|
|
436
|
+
role=AgentRole.ANALYZER,
|
|
437
|
+
tools=["read_file", "grep_code", "run_script"],
|
|
438
|
+
model_tier="premium",
|
|
439
|
+
system_prompt="""You are an SRE expert assisting with incident response.
|
|
440
|
+
Help with:
|
|
441
|
+
- Root cause analysis
|
|
442
|
+
- Impact assessment
|
|
443
|
+
- Mitigation strategies
|
|
444
|
+
- Communication templates
|
|
445
|
+
- Post-mortem preparation
|
|
446
|
+
- Preventive measures
|
|
447
|
+
|
|
448
|
+
Prioritize by customer impact and provide clear action items.""",
|
|
449
|
+
configuration={
|
|
450
|
+
"severity_levels": ["SEV1", "SEV2", "SEV3", "SEV4"],
|
|
451
|
+
},
|
|
452
|
+
tags=["incident", "sre", "response"],
|
|
453
|
+
)
|
|
454
|
+
|
|
455
|
+
# Result Synthesizer (used across domains)
|
|
456
|
+
RESULT_SYNTHESIZER = AgentTemplate(
|
|
457
|
+
template_id="result_synthesizer",
|
|
458
|
+
name="Result Synthesizer",
|
|
459
|
+
description="Aggregates and synthesizes results from multiple agents",
|
|
460
|
+
role=AgentRole.ORCHESTRATOR,
|
|
461
|
+
tools=["read_file"],
|
|
462
|
+
model_tier="capable",
|
|
463
|
+
system_prompt="""You are an expert at synthesizing findings from multiple analyses.
|
|
464
|
+
Your job is to:
|
|
465
|
+
- Aggregate findings from multiple agents
|
|
466
|
+
- Prioritize by severity and impact
|
|
467
|
+
- Identify patterns across findings
|
|
468
|
+
- Remove duplicates and consolidate
|
|
469
|
+
- Generate executive summary
|
|
470
|
+
- Provide prioritized action items
|
|
471
|
+
|
|
472
|
+
Format output clearly for both technical and non-technical audiences.""",
|
|
473
|
+
tags=["synthesis", "aggregation", "reporting"],
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
# =============================================================================
|
|
478
|
+
# WORKFLOW TEMPLATES
|
|
479
|
+
# =============================================================================
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
CODE_REVIEW_WORKFLOW = WorkflowTemplate(
|
|
483
|
+
template_id="code_review_standard",
|
|
484
|
+
name="Standard Code Review",
|
|
485
|
+
description="Comprehensive code review covering quality, security, and tests",
|
|
486
|
+
domain=Domain.CODE_REVIEW,
|
|
487
|
+
agents=["code_reviewer", "security_scanner", "result_synthesizer"],
|
|
488
|
+
stages=[
|
|
489
|
+
{
|
|
490
|
+
"stage_id": "analysis",
|
|
491
|
+
"name": "Code Analysis",
|
|
492
|
+
"agents": ["code_reviewer", "security_scanner"],
|
|
493
|
+
"parallel": True,
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"stage_id": "synthesis",
|
|
497
|
+
"name": "Result Synthesis",
|
|
498
|
+
"agents": ["result_synthesizer"],
|
|
499
|
+
"parallel": False,
|
|
500
|
+
"dependencies": ["analysis"],
|
|
501
|
+
},
|
|
502
|
+
],
|
|
503
|
+
success_metrics=[
|
|
504
|
+
{
|
|
505
|
+
"metric_id": "issues_found",
|
|
506
|
+
"name": "Issues Identified",
|
|
507
|
+
"type": "count",
|
|
508
|
+
"direction": "higher_is_better",
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"metric_id": "critical_issues",
|
|
512
|
+
"name": "Critical Issues",
|
|
513
|
+
"type": "count",
|
|
514
|
+
"target": 0,
|
|
515
|
+
"direction": "lower_is_better",
|
|
516
|
+
},
|
|
517
|
+
],
|
|
518
|
+
estimated_duration="moderate",
|
|
519
|
+
estimated_cost="moderate",
|
|
520
|
+
tags=["code_review", "quality"],
|
|
521
|
+
)
|
|
522
|
+
|
|
523
|
+
SECURITY_AUDIT_WORKFLOW = WorkflowTemplate(
|
|
524
|
+
template_id="security_audit_comprehensive",
|
|
525
|
+
name="Comprehensive Security Audit",
|
|
526
|
+
description="Full security audit including vulnerability scanning and compliance",
|
|
527
|
+
domain=Domain.SECURITY_AUDIT,
|
|
528
|
+
agents=["security_scanner", "compliance_auditor", "result_synthesizer"],
|
|
529
|
+
stages=[
|
|
530
|
+
{
|
|
531
|
+
"stage_id": "scanning",
|
|
532
|
+
"name": "Security Scanning",
|
|
533
|
+
"agents": ["security_scanner"],
|
|
534
|
+
"parallel": False,
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"stage_id": "compliance",
|
|
538
|
+
"name": "Compliance Check",
|
|
539
|
+
"agents": ["compliance_auditor"],
|
|
540
|
+
"parallel": False,
|
|
541
|
+
"dependencies": ["scanning"],
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"stage_id": "synthesis",
|
|
545
|
+
"name": "Report Generation",
|
|
546
|
+
"agents": ["result_synthesizer"],
|
|
547
|
+
"parallel": False,
|
|
548
|
+
"dependencies": ["scanning", "compliance"],
|
|
549
|
+
},
|
|
550
|
+
],
|
|
551
|
+
success_metrics=[
|
|
552
|
+
{
|
|
553
|
+
"metric_id": "vulnerabilities_found",
|
|
554
|
+
"name": "Vulnerabilities Found",
|
|
555
|
+
"type": "count",
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"metric_id": "compliance_score",
|
|
559
|
+
"name": "Compliance Score",
|
|
560
|
+
"type": "percentage",
|
|
561
|
+
"target": 90,
|
|
562
|
+
"direction": "higher_is_better",
|
|
563
|
+
},
|
|
564
|
+
],
|
|
565
|
+
estimated_duration="slow",
|
|
566
|
+
estimated_cost="expensive",
|
|
567
|
+
tags=["security", "compliance", "audit"],
|
|
568
|
+
)
|
|
569
|
+
|
|
570
|
+
TESTING_WORKFLOW = WorkflowTemplate(
|
|
571
|
+
template_id="test_generation_comprehensive",
|
|
572
|
+
name="Comprehensive Test Generation",
|
|
573
|
+
description="Generate unit tests with high coverage",
|
|
574
|
+
domain=Domain.TESTING,
|
|
575
|
+
agents=["test_generator", "code_reviewer", "result_synthesizer"],
|
|
576
|
+
stages=[
|
|
577
|
+
{
|
|
578
|
+
"stage_id": "generation",
|
|
579
|
+
"name": "Test Generation",
|
|
580
|
+
"agents": ["test_generator"],
|
|
581
|
+
"parallel": False,
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"stage_id": "review",
|
|
585
|
+
"name": "Test Review",
|
|
586
|
+
"agents": ["code_reviewer"],
|
|
587
|
+
"parallel": False,
|
|
588
|
+
"dependencies": ["generation"],
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"stage_id": "synthesis",
|
|
592
|
+
"name": "Summary",
|
|
593
|
+
"agents": ["result_synthesizer"],
|
|
594
|
+
"parallel": False,
|
|
595
|
+
"dependencies": ["review"],
|
|
596
|
+
},
|
|
597
|
+
],
|
|
598
|
+
success_metrics=[
|
|
599
|
+
{
|
|
600
|
+
"metric_id": "tests_generated",
|
|
601
|
+
"name": "Tests Generated",
|
|
602
|
+
"type": "count",
|
|
603
|
+
"direction": "higher_is_better",
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"metric_id": "coverage_improvement",
|
|
607
|
+
"name": "Coverage Improvement",
|
|
608
|
+
"type": "percentage",
|
|
609
|
+
"target": 80,
|
|
610
|
+
"direction": "higher_is_better",
|
|
611
|
+
},
|
|
612
|
+
],
|
|
613
|
+
estimated_duration="moderate",
|
|
614
|
+
estimated_cost="moderate",
|
|
615
|
+
tags=["testing", "coverage", "quality"],
|
|
616
|
+
)
|
|
617
|
+
|
|
618
|
+
PERFORMANCE_WORKFLOW = WorkflowTemplate(
|
|
619
|
+
template_id="performance_analysis",
|
|
620
|
+
name="Performance Analysis",
|
|
621
|
+
description="Analyze and optimize code performance",
|
|
622
|
+
domain=Domain.PERFORMANCE,
|
|
623
|
+
agents=["performance_analyzer", "refactoring_advisor", "result_synthesizer"],
|
|
624
|
+
stages=[
|
|
625
|
+
{
|
|
626
|
+
"stage_id": "analysis",
|
|
627
|
+
"name": "Performance Analysis",
|
|
628
|
+
"agents": ["performance_analyzer"],
|
|
629
|
+
"parallel": False,
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"stage_id": "optimization",
|
|
633
|
+
"name": "Optimization Recommendations",
|
|
634
|
+
"agents": ["refactoring_advisor"],
|
|
635
|
+
"parallel": False,
|
|
636
|
+
"dependencies": ["analysis"],
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
"stage_id": "synthesis",
|
|
640
|
+
"name": "Summary",
|
|
641
|
+
"agents": ["result_synthesizer"],
|
|
642
|
+
"parallel": False,
|
|
643
|
+
"dependencies": ["optimization"],
|
|
644
|
+
},
|
|
645
|
+
],
|
|
646
|
+
success_metrics=[
|
|
647
|
+
{
|
|
648
|
+
"metric_id": "bottlenecks_found",
|
|
649
|
+
"name": "Bottlenecks Identified",
|
|
650
|
+
"type": "count",
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"metric_id": "optimization_potential",
|
|
654
|
+
"name": "Optimization Potential",
|
|
655
|
+
"type": "percentage",
|
|
656
|
+
},
|
|
657
|
+
],
|
|
658
|
+
estimated_duration="moderate",
|
|
659
|
+
estimated_cost="moderate",
|
|
660
|
+
tags=["performance", "optimization"],
|
|
661
|
+
)
|
|
662
|
+
|
|
663
|
+
DEVOPS_CI_CD_WORKFLOW = WorkflowTemplate(
|
|
664
|
+
template_id="ci_cd_optimization",
|
|
665
|
+
name="CI/CD Pipeline Optimization",
|
|
666
|
+
description="Analyze and optimize CI/CD pipelines",
|
|
667
|
+
domain=Domain.CI_CD,
|
|
668
|
+
agents=["ci_cd_analyzer", "security_scanner", "result_synthesizer"],
|
|
669
|
+
stages=[
|
|
670
|
+
{
|
|
671
|
+
"stage_id": "pipeline_analysis",
|
|
672
|
+
"name": "Pipeline Analysis",
|
|
673
|
+
"agents": ["ci_cd_analyzer"],
|
|
674
|
+
"parallel": False,
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"stage_id": "security_check",
|
|
678
|
+
"name": "Security Check",
|
|
679
|
+
"agents": ["security_scanner"],
|
|
680
|
+
"parallel": False,
|
|
681
|
+
"dependencies": ["pipeline_analysis"],
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"stage_id": "synthesis",
|
|
685
|
+
"name": "Recommendations",
|
|
686
|
+
"agents": ["result_synthesizer"],
|
|
687
|
+
"parallel": False,
|
|
688
|
+
"dependencies": ["security_check"],
|
|
689
|
+
},
|
|
690
|
+
],
|
|
691
|
+
success_metrics=[
|
|
692
|
+
{
|
|
693
|
+
"metric_id": "pipeline_time_reduction",
|
|
694
|
+
"name": "Time Reduction Potential",
|
|
695
|
+
"type": "percentage",
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"metric_id": "security_issues",
|
|
699
|
+
"name": "Security Issues",
|
|
700
|
+
"type": "count",
|
|
701
|
+
"target": 0,
|
|
702
|
+
},
|
|
703
|
+
],
|
|
704
|
+
estimated_duration="moderate",
|
|
705
|
+
estimated_cost="moderate",
|
|
706
|
+
tags=["devops", "ci_cd", "pipeline"],
|
|
707
|
+
)
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
# =============================================================================
|
|
711
|
+
# DOMAIN TEMPLATE REGISTRY
|
|
712
|
+
# =============================================================================
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
class DomainTemplateRegistry:
|
|
716
|
+
"""Registry of domain templates."""
|
|
717
|
+
|
|
718
|
+
def __init__(self):
|
|
719
|
+
"""Initialize registry with built-in templates."""
|
|
720
|
+
self._agents: dict[str, AgentTemplate] = {}
|
|
721
|
+
self._workflows: dict[str, WorkflowTemplate] = {}
|
|
722
|
+
self._domains: dict[Domain, DomainTemplate] = {}
|
|
723
|
+
|
|
724
|
+
# Register built-in templates
|
|
725
|
+
self._register_builtins()
|
|
726
|
+
|
|
727
|
+
def _register_builtins(self):
|
|
728
|
+
"""Register built-in agent and workflow templates."""
|
|
729
|
+
# Register agent templates
|
|
730
|
+
agents = [
|
|
731
|
+
CODE_REVIEWER,
|
|
732
|
+
SECURITY_SCANNER,
|
|
733
|
+
TEST_GENERATOR,
|
|
734
|
+
PERFORMANCE_ANALYZER,
|
|
735
|
+
DOCUMENTATION_WRITER,
|
|
736
|
+
REFACTORING_ADVISOR,
|
|
737
|
+
COMPLIANCE_AUDITOR,
|
|
738
|
+
PENETRATION_TESTER,
|
|
739
|
+
DATA_VALIDATOR,
|
|
740
|
+
MODEL_EVALUATOR,
|
|
741
|
+
CI_CD_ANALYZER,
|
|
742
|
+
INFRASTRUCTURE_REVIEWER,
|
|
743
|
+
INCIDENT_RESPONDER,
|
|
744
|
+
RESULT_SYNTHESIZER,
|
|
745
|
+
]
|
|
746
|
+
for agent in agents:
|
|
747
|
+
self._agents[agent.template_id] = agent
|
|
748
|
+
|
|
749
|
+
# Register workflow templates
|
|
750
|
+
workflows = [
|
|
751
|
+
CODE_REVIEW_WORKFLOW,
|
|
752
|
+
SECURITY_AUDIT_WORKFLOW,
|
|
753
|
+
TESTING_WORKFLOW,
|
|
754
|
+
PERFORMANCE_WORKFLOW,
|
|
755
|
+
DEVOPS_CI_CD_WORKFLOW,
|
|
756
|
+
]
|
|
757
|
+
for workflow in workflows:
|
|
758
|
+
self._workflows[workflow.template_id] = workflow
|
|
759
|
+
|
|
760
|
+
# Create domain templates
|
|
761
|
+
self._domains[Domain.CODE_REVIEW] = DomainTemplate(
|
|
762
|
+
domain=Domain.CODE_REVIEW,
|
|
763
|
+
name="Code Review",
|
|
764
|
+
description="Automated code review and quality analysis",
|
|
765
|
+
agents=[CODE_REVIEWER, SECURITY_SCANNER, RESULT_SYNTHESIZER],
|
|
766
|
+
workflows=[CODE_REVIEW_WORKFLOW],
|
|
767
|
+
default_workflow="code_review_standard",
|
|
768
|
+
keywords=["review", "quality", "lint", "style", "clean", "readable"],
|
|
769
|
+
required_tools=["read_file", "grep_code"],
|
|
770
|
+
optional_tools=["analyze_ast", "run_linter"],
|
|
771
|
+
)
|
|
772
|
+
|
|
773
|
+
self._domains[Domain.SECURITY_AUDIT] = DomainTemplate(
|
|
774
|
+
domain=Domain.SECURITY_AUDIT,
|
|
775
|
+
name="Security Audit",
|
|
776
|
+
description="Security vulnerability scanning and compliance auditing",
|
|
777
|
+
agents=[SECURITY_SCANNER, COMPLIANCE_AUDITOR, RESULT_SYNTHESIZER],
|
|
778
|
+
workflows=[SECURITY_AUDIT_WORKFLOW],
|
|
779
|
+
default_workflow="security_audit_comprehensive",
|
|
780
|
+
keywords=[
|
|
781
|
+
"security",
|
|
782
|
+
"vulnerability",
|
|
783
|
+
"audit",
|
|
784
|
+
"compliance",
|
|
785
|
+
"penetration",
|
|
786
|
+
"CVE",
|
|
787
|
+
"OWASP",
|
|
788
|
+
],
|
|
789
|
+
required_tools=["read_file", "security_scan"],
|
|
790
|
+
optional_tools=["grep_code", "analyze_ast"],
|
|
791
|
+
)
|
|
792
|
+
|
|
793
|
+
self._domains[Domain.TESTING] = DomainTemplate(
|
|
794
|
+
domain=Domain.TESTING,
|
|
795
|
+
name="Testing",
|
|
796
|
+
description="Automated test generation and coverage improvement",
|
|
797
|
+
agents=[TEST_GENERATOR, CODE_REVIEWER, RESULT_SYNTHESIZER],
|
|
798
|
+
workflows=[TESTING_WORKFLOW],
|
|
799
|
+
default_workflow="test_generation_comprehensive",
|
|
800
|
+
keywords=["test", "coverage", "unit", "integration", "e2e", "pytest", "jest"],
|
|
801
|
+
required_tools=["read_file", "run_tests", "write_file"],
|
|
802
|
+
optional_tools=["analyze_ast"],
|
|
803
|
+
)
|
|
804
|
+
|
|
805
|
+
self._domains[Domain.PERFORMANCE] = DomainTemplate(
|
|
806
|
+
domain=Domain.PERFORMANCE,
|
|
807
|
+
name="Performance",
|
|
808
|
+
description="Performance analysis and optimization",
|
|
809
|
+
agents=[PERFORMANCE_ANALYZER, REFACTORING_ADVISOR, RESULT_SYNTHESIZER],
|
|
810
|
+
workflows=[PERFORMANCE_WORKFLOW],
|
|
811
|
+
default_workflow="performance_analysis",
|
|
812
|
+
keywords=["performance", "optimize", "speed", "memory", "profile", "bottleneck"],
|
|
813
|
+
required_tools=["read_file", "analyze_ast"],
|
|
814
|
+
optional_tools=["run_profiler"],
|
|
815
|
+
)
|
|
816
|
+
|
|
817
|
+
self._domains[Domain.CI_CD] = DomainTemplate(
|
|
818
|
+
domain=Domain.CI_CD,
|
|
819
|
+
name="CI/CD",
|
|
820
|
+
description="CI/CD pipeline analysis and optimization",
|
|
821
|
+
agents=[CI_CD_ANALYZER, SECURITY_SCANNER, RESULT_SYNTHESIZER],
|
|
822
|
+
workflows=[DEVOPS_CI_CD_WORKFLOW],
|
|
823
|
+
default_workflow="ci_cd_optimization",
|
|
824
|
+
keywords=["ci", "cd", "pipeline", "github actions", "jenkins", "deployment"],
|
|
825
|
+
required_tools=["read_file", "grep_code"],
|
|
826
|
+
optional_tools=["run_script"],
|
|
827
|
+
)
|
|
828
|
+
|
|
829
|
+
def get_agent(self, template_id: str) -> AgentTemplate | None:
|
|
830
|
+
"""Get agent template by ID."""
|
|
831
|
+
return self._agents.get(template_id)
|
|
832
|
+
|
|
833
|
+
def get_workflow(self, template_id: str) -> WorkflowTemplate | None:
|
|
834
|
+
"""Get workflow template by ID."""
|
|
835
|
+
return self._workflows.get(template_id)
|
|
836
|
+
|
|
837
|
+
def get_domain(self, domain: Domain) -> DomainTemplate | None:
|
|
838
|
+
"""Get domain template."""
|
|
839
|
+
return self._domains.get(domain)
|
|
840
|
+
|
|
841
|
+
def list_agents(self, domain: Domain | None = None) -> list[AgentTemplate]:
|
|
842
|
+
"""List agent templates, optionally filtered by domain."""
|
|
843
|
+
if domain is None:
|
|
844
|
+
return list(self._agents.values())
|
|
845
|
+
|
|
846
|
+
domain_template = self._domains.get(domain)
|
|
847
|
+
if domain_template:
|
|
848
|
+
return domain_template.agents
|
|
849
|
+
return []
|
|
850
|
+
|
|
851
|
+
def list_workflows(self, domain: Domain | None = None) -> list[WorkflowTemplate]:
|
|
852
|
+
"""List workflow templates, optionally filtered by domain."""
|
|
853
|
+
if domain is None:
|
|
854
|
+
return list(self._workflows.values())
|
|
855
|
+
|
|
856
|
+
domain_template = self._domains.get(domain)
|
|
857
|
+
if domain_template:
|
|
858
|
+
return domain_template.workflows
|
|
859
|
+
return []
|
|
860
|
+
|
|
861
|
+
def list_domains(self) -> list[Domain]:
|
|
862
|
+
"""List all supported domains."""
|
|
863
|
+
return list(self._domains.keys())
|
|
864
|
+
|
|
865
|
+
def detect_domain(self, goal: str) -> tuple[Domain, float]:
|
|
866
|
+
"""Detect domain from goal text.
|
|
867
|
+
|
|
868
|
+
Args:
|
|
869
|
+
goal: Goal text
|
|
870
|
+
|
|
871
|
+
Returns:
|
|
872
|
+
(domain, confidence) tuple
|
|
873
|
+
"""
|
|
874
|
+
goal_lower = goal.lower()
|
|
875
|
+
scores: dict[Domain, float] = {}
|
|
876
|
+
|
|
877
|
+
for domain, template in self._domains.items():
|
|
878
|
+
score = 0.0
|
|
879
|
+
for keyword in template.keywords:
|
|
880
|
+
if keyword in goal_lower:
|
|
881
|
+
score += 1.0
|
|
882
|
+
# Bonus for word boundary match
|
|
883
|
+
if f" {keyword} " in f" {goal_lower} ":
|
|
884
|
+
score += 0.5
|
|
885
|
+
|
|
886
|
+
if score > 0:
|
|
887
|
+
# Normalize by number of keywords
|
|
888
|
+
scores[domain] = score / len(template.keywords)
|
|
889
|
+
|
|
890
|
+
if not scores:
|
|
891
|
+
return Domain.GENERAL, 0.3
|
|
892
|
+
|
|
893
|
+
best_domain = max(scores, key=scores.get)
|
|
894
|
+
confidence = min(scores[best_domain] * 2, 1.0) # Scale up, cap at 1.0
|
|
895
|
+
|
|
896
|
+
return best_domain, confidence
|
|
897
|
+
|
|
898
|
+
def get_default_workflow(self, domain: Domain) -> WorkflowTemplate | None:
|
|
899
|
+
"""Get default workflow for a domain."""
|
|
900
|
+
domain_template = self._domains.get(domain)
|
|
901
|
+
if domain_template:
|
|
902
|
+
return self._workflows.get(domain_template.default_workflow)
|
|
903
|
+
return None
|
|
904
|
+
|
|
905
|
+
def register_agent(self, template: AgentTemplate):
|
|
906
|
+
"""Register a custom agent template."""
|
|
907
|
+
self._agents[template.template_id] = template
|
|
908
|
+
|
|
909
|
+
def register_workflow(self, template: WorkflowTemplate):
|
|
910
|
+
"""Register a custom workflow template."""
|
|
911
|
+
self._workflows[template.template_id] = template
|
|
912
|
+
|
|
913
|
+
def register_domain(self, template: DomainTemplate):
|
|
914
|
+
"""Register a custom domain template."""
|
|
915
|
+
self._domains[template.domain] = template
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
# Global registry instance
|
|
919
|
+
REGISTRY = DomainTemplateRegistry()
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
def get_registry() -> DomainTemplateRegistry:
|
|
923
|
+
"""Get the global domain template registry."""
|
|
924
|
+
return REGISTRY
|