tapps-agents 3.5.40__py3-none-any.whl → 3.6.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.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/__init__.py +22 -22
- tapps_agents/agents/analyst/__init__.py +5 -5
- tapps_agents/agents/architect/__init__.py +5 -5
- tapps_agents/agents/architect/agent.py +1033 -1033
- tapps_agents/agents/architect/pattern_detector.py +75 -75
- tapps_agents/agents/cleanup/__init__.py +7 -7
- tapps_agents/agents/cleanup/agent.py +445 -445
- tapps_agents/agents/debugger/__init__.py +7 -7
- tapps_agents/agents/debugger/agent.py +310 -310
- tapps_agents/agents/debugger/error_analyzer.py +437 -437
- tapps_agents/agents/designer/__init__.py +5 -5
- tapps_agents/agents/designer/agent.py +786 -786
- tapps_agents/agents/designer/visual_designer.py +638 -638
- tapps_agents/agents/documenter/__init__.py +7 -7
- tapps_agents/agents/documenter/agent.py +531 -531
- tapps_agents/agents/documenter/doc_generator.py +472 -472
- tapps_agents/agents/documenter/doc_validator.py +393 -393
- tapps_agents/agents/documenter/framework_doc_updater.py +493 -493
- tapps_agents/agents/enhancer/__init__.py +7 -7
- tapps_agents/agents/evaluator/__init__.py +7 -7
- tapps_agents/agents/evaluator/agent.py +443 -443
- tapps_agents/agents/evaluator/priority_evaluator.py +641 -641
- tapps_agents/agents/evaluator/quality_analyzer.py +147 -147
- tapps_agents/agents/evaluator/report_generator.py +344 -344
- tapps_agents/agents/evaluator/usage_analyzer.py +192 -192
- tapps_agents/agents/evaluator/workflow_analyzer.py +189 -189
- tapps_agents/agents/implementer/__init__.py +7 -7
- tapps_agents/agents/implementer/agent.py +798 -798
- tapps_agents/agents/implementer/auto_fix.py +1119 -1119
- tapps_agents/agents/implementer/code_generator.py +73 -73
- tapps_agents/agents/improver/__init__.py +1 -1
- tapps_agents/agents/improver/agent.py +753 -753
- tapps_agents/agents/ops/__init__.py +1 -1
- tapps_agents/agents/ops/agent.py +619 -619
- tapps_agents/agents/ops/dependency_analyzer.py +600 -600
- tapps_agents/agents/orchestrator/__init__.py +5 -5
- tapps_agents/agents/orchestrator/agent.py +522 -522
- tapps_agents/agents/planner/__init__.py +7 -7
- tapps_agents/agents/planner/agent.py +1127 -1127
- tapps_agents/agents/reviewer/__init__.py +24 -24
- tapps_agents/agents/reviewer/agent.py +3513 -3513
- tapps_agents/agents/reviewer/aggregator.py +213 -213
- tapps_agents/agents/reviewer/batch_review.py +448 -448
- tapps_agents/agents/reviewer/cache.py +443 -443
- tapps_agents/agents/reviewer/context7_enhancer.py +630 -630
- tapps_agents/agents/reviewer/context_detector.py +203 -203
- tapps_agents/agents/reviewer/docker_compose_validator.py +158 -158
- tapps_agents/agents/reviewer/dockerfile_validator.py +176 -176
- tapps_agents/agents/reviewer/error_handling.py +126 -126
- tapps_agents/agents/reviewer/feedback_generator.py +490 -490
- tapps_agents/agents/reviewer/influxdb_validator.py +316 -316
- tapps_agents/agents/reviewer/issue_tracking.py +169 -169
- tapps_agents/agents/reviewer/library_detector.py +295 -295
- tapps_agents/agents/reviewer/library_patterns.py +268 -268
- tapps_agents/agents/reviewer/maintainability_scorer.py +593 -593
- tapps_agents/agents/reviewer/metric_strategies.py +276 -276
- tapps_agents/agents/reviewer/mqtt_validator.py +160 -160
- tapps_agents/agents/reviewer/output_enhancer.py +105 -105
- tapps_agents/agents/reviewer/pattern_detector.py +241 -241
- tapps_agents/agents/reviewer/performance_scorer.py +357 -357
- tapps_agents/agents/reviewer/phased_review.py +516 -516
- tapps_agents/agents/reviewer/progressive_review.py +435 -435
- tapps_agents/agents/reviewer/react_scorer.py +331 -331
- tapps_agents/agents/reviewer/score_constants.py +228 -228
- tapps_agents/agents/reviewer/score_validator.py +507 -507
- tapps_agents/agents/reviewer/scorer_registry.py +373 -373
- tapps_agents/agents/reviewer/scoring.py +1566 -1566
- tapps_agents/agents/reviewer/service_discovery.py +534 -534
- tapps_agents/agents/reviewer/tools/__init__.py +41 -41
- tapps_agents/agents/reviewer/tools/parallel_executor.py +581 -581
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -250
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -284
- tapps_agents/agents/reviewer/typescript_scorer.py +1142 -1142
- tapps_agents/agents/reviewer/validation.py +208 -208
- tapps_agents/agents/reviewer/websocket_validator.py +132 -132
- tapps_agents/agents/tester/__init__.py +7 -7
- tapps_agents/agents/tester/accessibility_auditor.py +309 -309
- tapps_agents/agents/tester/agent.py +1080 -1080
- tapps_agents/agents/tester/batch_generator.py +54 -54
- tapps_agents/agents/tester/context_learner.py +51 -51
- tapps_agents/agents/tester/coverage_analyzer.py +386 -386
- tapps_agents/agents/tester/coverage_test_generator.py +290 -290
- tapps_agents/agents/tester/debug_enhancer.py +238 -238
- tapps_agents/agents/tester/device_emulator.py +241 -241
- tapps_agents/agents/tester/integration_generator.py +62 -62
- tapps_agents/agents/tester/network_recorder.py +300 -300
- tapps_agents/agents/tester/performance_monitor.py +320 -320
- tapps_agents/agents/tester/test_fixer.py +316 -316
- tapps_agents/agents/tester/test_generator.py +632 -632
- tapps_agents/agents/tester/trace_manager.py +234 -234
- tapps_agents/agents/tester/visual_regression.py +291 -291
- tapps_agents/analysis/pattern_detector.py +36 -36
- tapps_agents/beads/hydration.py +213 -213
- tapps_agents/beads/parse.py +32 -32
- tapps_agents/beads/specs.py +206 -206
- tapps_agents/cli/__init__.py +9 -9
- tapps_agents/cli/__main__.py +8 -8
- tapps_agents/cli/base.py +478 -478
- tapps_agents/cli/command_classifier.py +72 -72
- tapps_agents/cli/commands/__init__.py +2 -2
- tapps_agents/cli/commands/analyst.py +173 -173
- tapps_agents/cli/commands/architect.py +109 -109
- tapps_agents/cli/commands/cleanup_agent.py +92 -92
- tapps_agents/cli/commands/common.py +126 -126
- tapps_agents/cli/commands/debugger.py +90 -90
- tapps_agents/cli/commands/designer.py +112 -112
- tapps_agents/cli/commands/documenter.py +136 -136
- tapps_agents/cli/commands/enhancer.py +110 -110
- tapps_agents/cli/commands/evaluator.py +255 -255
- tapps_agents/cli/commands/health.py +665 -665
- tapps_agents/cli/commands/implementer.py +301 -301
- tapps_agents/cli/commands/improver.py +91 -91
- tapps_agents/cli/commands/knowledge.py +111 -111
- tapps_agents/cli/commands/learning.py +172 -172
- tapps_agents/cli/commands/observability.py +283 -283
- tapps_agents/cli/commands/ops.py +135 -135
- tapps_agents/cli/commands/orchestrator.py +116 -116
- tapps_agents/cli/commands/planner.py +237 -237
- tapps_agents/cli/commands/reviewer.py +1872 -1872
- tapps_agents/cli/commands/status.py +285 -285
- tapps_agents/cli/commands/task.py +227 -219
- tapps_agents/cli/commands/tester.py +191 -191
- tapps_agents/cli/commands/top_level.py +3586 -3586
- tapps_agents/cli/feedback.py +936 -936
- tapps_agents/cli/formatters.py +608 -608
- tapps_agents/cli/help/__init__.py +7 -7
- tapps_agents/cli/help/static_help.py +425 -425
- tapps_agents/cli/network_detection.py +110 -110
- tapps_agents/cli/output_compactor.py +274 -274
- tapps_agents/cli/parsers/__init__.py +2 -2
- tapps_agents/cli/parsers/analyst.py +186 -186
- tapps_agents/cli/parsers/architect.py +167 -167
- tapps_agents/cli/parsers/cleanup_agent.py +228 -228
- tapps_agents/cli/parsers/debugger.py +116 -116
- tapps_agents/cli/parsers/designer.py +182 -182
- tapps_agents/cli/parsers/documenter.py +134 -134
- tapps_agents/cli/parsers/enhancer.py +113 -113
- tapps_agents/cli/parsers/evaluator.py +213 -213
- tapps_agents/cli/parsers/implementer.py +168 -168
- tapps_agents/cli/parsers/improver.py +132 -132
- tapps_agents/cli/parsers/ops.py +159 -159
- tapps_agents/cli/parsers/orchestrator.py +98 -98
- tapps_agents/cli/parsers/planner.py +145 -145
- tapps_agents/cli/parsers/reviewer.py +462 -462
- tapps_agents/cli/parsers/tester.py +124 -124
- tapps_agents/cli/progress_heartbeat.py +254 -254
- tapps_agents/cli/streaming_progress.py +336 -336
- tapps_agents/cli/utils/__init__.py +6 -6
- tapps_agents/cli/utils/agent_lifecycle.py +48 -48
- tapps_agents/cli/utils/error_formatter.py +82 -82
- tapps_agents/cli/utils/error_recovery.py +188 -188
- tapps_agents/cli/utils/output_handler.py +59 -59
- tapps_agents/cli/utils/prompt_enhancer.py +319 -319
- tapps_agents/cli/validators/__init__.py +9 -9
- tapps_agents/cli/validators/command_validator.py +81 -81
- tapps_agents/context7/__init__.py +112 -112
- tapps_agents/context7/agent_integration.py +869 -869
- tapps_agents/context7/analytics.py +382 -382
- tapps_agents/context7/analytics_dashboard.py +299 -299
- tapps_agents/context7/async_cache.py +681 -681
- tapps_agents/context7/backup_client.py +958 -958
- tapps_agents/context7/cache_locking.py +194 -194
- tapps_agents/context7/cache_metadata.py +214 -214
- tapps_agents/context7/cache_prewarm.py +488 -488
- tapps_agents/context7/cache_structure.py +168 -168
- tapps_agents/context7/cache_warming.py +604 -604
- tapps_agents/context7/circuit_breaker.py +376 -376
- tapps_agents/context7/cleanup.py +461 -461
- tapps_agents/context7/commands.py +858 -858
- tapps_agents/context7/credential_validation.py +276 -276
- tapps_agents/context7/cross_reference_resolver.py +168 -168
- tapps_agents/context7/cross_references.py +424 -424
- tapps_agents/context7/doc_manager.py +225 -225
- tapps_agents/context7/fuzzy_matcher.py +369 -369
- tapps_agents/context7/kb_cache.py +404 -404
- tapps_agents/context7/language_detector.py +219 -219
- tapps_agents/context7/library_detector.py +725 -725
- tapps_agents/context7/lookup.py +738 -738
- tapps_agents/context7/metadata.py +258 -258
- tapps_agents/context7/refresh_queue.py +300 -300
- tapps_agents/context7/security.py +373 -373
- tapps_agents/context7/staleness_policies.py +278 -278
- tapps_agents/context7/tiles_integration.py +47 -47
- tapps_agents/continuous_bug_fix/__init__.py +20 -20
- tapps_agents/continuous_bug_fix/bug_finder.py +306 -306
- tapps_agents/continuous_bug_fix/bug_fix_coordinator.py +177 -177
- tapps_agents/continuous_bug_fix/commit_manager.py +178 -178
- tapps_agents/continuous_bug_fix/continuous_bug_fixer.py +322 -322
- tapps_agents/continuous_bug_fix/proactive_bug_finder.py +285 -285
- tapps_agents/core/__init__.py +298 -298
- tapps_agents/core/adaptive_cache_config.py +432 -432
- tapps_agents/core/agent_base.py +647 -647
- tapps_agents/core/agent_cache.py +466 -466
- tapps_agents/core/agent_learning.py +1865 -1865
- tapps_agents/core/analytics_dashboard.py +563 -563
- tapps_agents/core/analytics_enhancements.py +597 -597
- tapps_agents/core/anonymization.py +274 -274
- tapps_agents/core/artifact_context_builder.py +293 -0
- tapps_agents/core/ast_parser.py +228 -228
- tapps_agents/core/async_file_ops.py +402 -402
- tapps_agents/core/best_practice_consultant.py +299 -299
- tapps_agents/core/brownfield_analyzer.py +299 -299
- tapps_agents/core/brownfield_review.py +541 -541
- tapps_agents/core/browser_controller.py +513 -513
- tapps_agents/core/capability_registry.py +418 -418
- tapps_agents/core/change_impact_analyzer.py +190 -190
- tapps_agents/core/checkpoint_manager.py +377 -377
- tapps_agents/core/code_generator.py +329 -329
- tapps_agents/core/code_validator.py +276 -276
- tapps_agents/core/command_registry.py +327 -327
- tapps_agents/core/config.py +33 -0
- tapps_agents/core/context_gathering/__init__.py +2 -2
- tapps_agents/core/context_gathering/repository_explorer.py +28 -28
- tapps_agents/core/context_intelligence/__init__.py +2 -2
- tapps_agents/core/context_intelligence/relevance_scorer.py +24 -24
- tapps_agents/core/context_intelligence/token_budget_manager.py +27 -27
- tapps_agents/core/context_manager.py +240 -240
- tapps_agents/core/cursor_feedback_monitor.py +146 -146
- tapps_agents/core/cursor_verification.py +290 -290
- tapps_agents/core/customization_loader.py +280 -280
- tapps_agents/core/customization_schema.py +260 -260
- tapps_agents/core/customization_template.py +238 -238
- tapps_agents/core/debug_logger.py +124 -124
- tapps_agents/core/design_validator.py +298 -298
- tapps_agents/core/diagram_generator.py +226 -226
- tapps_agents/core/docker_utils.py +232 -232
- tapps_agents/core/document_generator.py +617 -617
- tapps_agents/core/domain_detector.py +30 -30
- tapps_agents/core/error_envelope.py +454 -454
- tapps_agents/core/error_handler.py +270 -270
- tapps_agents/core/estimation_tracker.py +189 -189
- tapps_agents/core/eval_prompt_engine.py +116 -116
- tapps_agents/core/evaluation_base.py +119 -119
- tapps_agents/core/evaluation_models.py +320 -320
- tapps_agents/core/evaluation_orchestrator.py +225 -225
- tapps_agents/core/evaluators/__init__.py +7 -7
- tapps_agents/core/evaluators/architectural_evaluator.py +205 -205
- tapps_agents/core/evaluators/behavioral_evaluator.py +160 -160
- tapps_agents/core/evaluators/performance_profile_evaluator.py +160 -160
- tapps_agents/core/evaluators/security_posture_evaluator.py +148 -148
- tapps_agents/core/evaluators/spec_compliance_evaluator.py +181 -181
- tapps_agents/core/exceptions.py +107 -107
- tapps_agents/core/expert_config_generator.py +293 -293
- tapps_agents/core/export_schema.py +202 -202
- tapps_agents/core/external_feedback_models.py +102 -102
- tapps_agents/core/external_feedback_storage.py +213 -213
- tapps_agents/core/fallback_strategy.py +314 -314
- tapps_agents/core/feedback_analyzer.py +162 -162
- tapps_agents/core/feedback_collector.py +178 -178
- tapps_agents/core/git_operations.py +445 -445
- tapps_agents/core/hardware_profiler.py +151 -151
- tapps_agents/core/instructions.py +324 -324
- tapps_agents/core/io_guardrails.py +69 -69
- tapps_agents/core/issue_manifest.py +249 -249
- tapps_agents/core/issue_schema.py +139 -139
- tapps_agents/core/json_utils.py +128 -128
- tapps_agents/core/knowledge_graph.py +446 -446
- tapps_agents/core/language_detector.py +296 -296
- tapps_agents/core/learning_confidence.py +242 -242
- tapps_agents/core/learning_dashboard.py +246 -246
- tapps_agents/core/learning_decision.py +384 -384
- tapps_agents/core/learning_explainability.py +578 -578
- tapps_agents/core/learning_export.py +287 -287
- tapps_agents/core/learning_integration.py +228 -228
- tapps_agents/core/llm_behavior.py +232 -232
- tapps_agents/core/long_duration_support.py +786 -786
- tapps_agents/core/mcp_setup.py +106 -106
- tapps_agents/core/memory_integration.py +396 -396
- tapps_agents/core/meta_learning.py +666 -666
- tapps_agents/core/module_path_sanitizer.py +199 -199
- tapps_agents/core/multi_agent_orchestrator.py +382 -382
- tapps_agents/core/network_errors.py +125 -125
- tapps_agents/core/nfr_validator.py +336 -336
- tapps_agents/core/offline_mode.py +158 -158
- tapps_agents/core/output_contracts.py +300 -300
- tapps_agents/core/output_formatter.py +300 -300
- tapps_agents/core/path_normalizer.py +174 -174
- tapps_agents/core/path_validator.py +322 -322
- tapps_agents/core/pattern_library.py +250 -250
- tapps_agents/core/performance_benchmark.py +301 -301
- tapps_agents/core/performance_monitor.py +184 -184
- tapps_agents/core/playwright_mcp_controller.py +771 -771
- tapps_agents/core/policy_loader.py +135 -135
- tapps_agents/core/progress.py +166 -166
- tapps_agents/core/project_profile.py +354 -354
- tapps_agents/core/project_type_detector.py +454 -454
- tapps_agents/core/prompt_base.py +223 -223
- tapps_agents/core/prompt_learning/__init__.py +2 -2
- tapps_agents/core/prompt_learning/learning_loop.py +24 -24
- tapps_agents/core/prompt_learning/project_prompt_store.py +25 -25
- tapps_agents/core/prompt_learning/skills_prompt_analyzer.py +35 -35
- tapps_agents/core/prompt_optimization/__init__.py +6 -6
- tapps_agents/core/prompt_optimization/ab_tester.py +114 -114
- tapps_agents/core/prompt_optimization/correlation_analyzer.py +160 -160
- tapps_agents/core/prompt_optimization/progressive_refiner.py +129 -129
- tapps_agents/core/prompt_optimization/prompt_library.py +37 -37
- tapps_agents/core/requirements_evaluator.py +431 -431
- tapps_agents/core/resource_aware_executor.py +449 -449
- tapps_agents/core/resource_monitor.py +343 -343
- tapps_agents/core/resume_handler.py +298 -298
- tapps_agents/core/retry_handler.py +197 -197
- tapps_agents/core/review_checklists.py +479 -479
- tapps_agents/core/role_loader.py +201 -201
- tapps_agents/core/role_template_loader.py +201 -201
- tapps_agents/core/runtime_mode.py +60 -60
- tapps_agents/core/security_scanner.py +342 -342
- tapps_agents/core/skill_agent_registry.py +194 -194
- tapps_agents/core/skill_integration.py +208 -208
- tapps_agents/core/skill_loader.py +492 -492
- tapps_agents/core/skill_template.py +341 -341
- tapps_agents/core/skill_validator.py +478 -478
- tapps_agents/core/stack_analyzer.py +35 -35
- tapps_agents/core/startup.py +174 -174
- tapps_agents/core/storage_manager.py +397 -397
- tapps_agents/core/storage_models.py +166 -166
- tapps_agents/core/story_evaluator.py +410 -410
- tapps_agents/core/subprocess_utils.py +170 -170
- tapps_agents/core/task_duration.py +296 -296
- tapps_agents/core/task_memory.py +582 -582
- tapps_agents/core/task_state.py +226 -226
- tapps_agents/core/tech_stack_priorities.py +208 -208
- tapps_agents/core/temp_directory.py +194 -194
- tapps_agents/core/template_merger.py +600 -600
- tapps_agents/core/template_selector.py +280 -280
- tapps_agents/core/test_generator.py +286 -286
- tapps_agents/core/tiered_context.py +253 -253
- tapps_agents/core/token_monitor.py +345 -345
- tapps_agents/core/traceability.py +254 -254
- tapps_agents/core/trajectory_tracker.py +50 -50
- tapps_agents/core/unicode_safe.py +143 -143
- tapps_agents/core/unified_cache_config.py +170 -170
- tapps_agents/core/unified_state.py +324 -324
- tapps_agents/core/validate_cursor_setup.py +237 -237
- tapps_agents/core/validation_registry.py +136 -136
- tapps_agents/core/validators/__init__.py +4 -4
- tapps_agents/core/validators/python_validator.py +87 -87
- tapps_agents/core/verification_agent.py +90 -90
- tapps_agents/core/visual_feedback.py +644 -644
- tapps_agents/core/workflow_validator.py +197 -197
- tapps_agents/core/worktree.py +367 -367
- tapps_agents/docker/__init__.py +10 -10
- tapps_agents/docker/analyzer.py +186 -186
- tapps_agents/docker/debugger.py +229 -229
- tapps_agents/docker/error_patterns.py +216 -216
- tapps_agents/epic/__init__.py +22 -22
- tapps_agents/epic/beads_sync.py +115 -115
- tapps_agents/epic/markdown_sync.py +105 -105
- tapps_agents/epic/models.py +96 -96
- tapps_agents/experts/__init__.py +163 -163
- tapps_agents/experts/agent_integration.py +243 -243
- tapps_agents/experts/auto_generator.py +331 -331
- tapps_agents/experts/base_expert.py +536 -536
- tapps_agents/experts/builtin_registry.py +261 -261
- tapps_agents/experts/business_metrics.py +565 -565
- tapps_agents/experts/cache.py +266 -266
- tapps_agents/experts/confidence_breakdown.py +306 -306
- tapps_agents/experts/confidence_calculator.py +336 -336
- tapps_agents/experts/confidence_metrics.py +236 -236
- tapps_agents/experts/domain_config.py +311 -311
- tapps_agents/experts/domain_detector.py +550 -550
- tapps_agents/experts/domain_utils.py +84 -84
- tapps_agents/experts/expert_config.py +113 -113
- tapps_agents/experts/expert_engine.py +465 -465
- tapps_agents/experts/expert_registry.py +744 -744
- tapps_agents/experts/expert_synthesizer.py +70 -70
- tapps_agents/experts/governance.py +197 -197
- tapps_agents/experts/history_logger.py +312 -312
- tapps_agents/experts/knowledge/README.md +180 -180
- tapps_agents/experts/knowledge/accessibility/accessible-forms.md +331 -331
- tapps_agents/experts/knowledge/accessibility/aria-patterns.md +344 -344
- tapps_agents/experts/knowledge/accessibility/color-contrast.md +285 -285
- tapps_agents/experts/knowledge/accessibility/keyboard-navigation.md +332 -332
- tapps_agents/experts/knowledge/accessibility/screen-readers.md +282 -282
- tapps_agents/experts/knowledge/accessibility/semantic-html.md +355 -355
- tapps_agents/experts/knowledge/accessibility/testing-accessibility.md +369 -369
- tapps_agents/experts/knowledge/accessibility/wcag-2.1.md +296 -296
- tapps_agents/experts/knowledge/accessibility/wcag-2.2.md +211 -211
- tapps_agents/experts/knowledge/agent-learning/best-practices.md +715 -715
- tapps_agents/experts/knowledge/agent-learning/pattern-extraction.md +282 -282
- tapps_agents/experts/knowledge/agent-learning/prompt-optimization.md +320 -320
- tapps_agents/experts/knowledge/ai-frameworks/model-optimization.md +90 -90
- tapps_agents/experts/knowledge/ai-frameworks/openvino-patterns.md +260 -260
- tapps_agents/experts/knowledge/api-design-integration/api-gateway-patterns.md +309 -309
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +521 -521
- tapps_agents/experts/knowledge/api-design-integration/api-versioning.md +421 -421
- tapps_agents/experts/knowledge/api-design-integration/async-protocol-patterns.md +61 -61
- tapps_agents/experts/knowledge/api-design-integration/contract-testing.md +221 -221
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +489 -489
- tapps_agents/experts/knowledge/api-design-integration/fastapi-patterns.md +360 -360
- tapps_agents/experts/knowledge/api-design-integration/fastapi-testing.md +262 -262
- tapps_agents/experts/knowledge/api-design-integration/graphql-patterns.md +582 -582
- tapps_agents/experts/knowledge/api-design-integration/grpc-best-practices.md +499 -499
- tapps_agents/experts/knowledge/api-design-integration/mqtt-patterns.md +455 -455
- tapps_agents/experts/knowledge/api-design-integration/rate-limiting.md +507 -507
- tapps_agents/experts/knowledge/api-design-integration/restful-api-design.md +618 -618
- tapps_agents/experts/knowledge/api-design-integration/websocket-patterns.md +480 -480
- tapps_agents/experts/knowledge/cloud-infrastructure/cloud-native-patterns.md +175 -175
- tapps_agents/experts/knowledge/cloud-infrastructure/container-health-checks.md +261 -261
- tapps_agents/experts/knowledge/cloud-infrastructure/containerization.md +222 -222
- tapps_agents/experts/knowledge/cloud-infrastructure/cost-optimization.md +122 -122
- tapps_agents/experts/knowledge/cloud-infrastructure/disaster-recovery.md +153 -153
- tapps_agents/experts/knowledge/cloud-infrastructure/dockerfile-patterns.md +285 -285
- tapps_agents/experts/knowledge/cloud-infrastructure/infrastructure-as-code.md +187 -187
- tapps_agents/experts/knowledge/cloud-infrastructure/kubernetes-patterns.md +253 -253
- tapps_agents/experts/knowledge/cloud-infrastructure/multi-cloud-strategies.md +155 -155
- tapps_agents/experts/knowledge/cloud-infrastructure/serverless-architecture.md +200 -200
- tapps_agents/experts/knowledge/code-quality-analysis/README.md +16 -16
- tapps_agents/experts/knowledge/code-quality-analysis/code-metrics.md +137 -137
- tapps_agents/experts/knowledge/code-quality-analysis/complexity-analysis.md +181 -181
- tapps_agents/experts/knowledge/code-quality-analysis/technical-debt-patterns.md +191 -191
- tapps_agents/experts/knowledge/data-privacy-compliance/anonymization.md +313 -313
- tapps_agents/experts/knowledge/data-privacy-compliance/ccpa.md +255 -255
- tapps_agents/experts/knowledge/data-privacy-compliance/consent-management.md +282 -282
- tapps_agents/experts/knowledge/data-privacy-compliance/data-minimization.md +275 -275
- tapps_agents/experts/knowledge/data-privacy-compliance/data-retention.md +297 -297
- tapps_agents/experts/knowledge/data-privacy-compliance/data-subject-rights.md +383 -383
- tapps_agents/experts/knowledge/data-privacy-compliance/encryption-privacy.md +285 -285
- tapps_agents/experts/knowledge/data-privacy-compliance/gdpr.md +344 -344
- tapps_agents/experts/knowledge/data-privacy-compliance/hipaa.md +385 -385
- tapps_agents/experts/knowledge/data-privacy-compliance/privacy-by-design.md +280 -280
- tapps_agents/experts/knowledge/database-data-management/acid-vs-cap.md +164 -164
- tapps_agents/experts/knowledge/database-data-management/backup-and-recovery.md +182 -182
- tapps_agents/experts/knowledge/database-data-management/data-modeling.md +172 -172
- tapps_agents/experts/knowledge/database-data-management/database-design.md +187 -187
- tapps_agents/experts/knowledge/database-data-management/flux-query-optimization.md +342 -342
- tapps_agents/experts/knowledge/database-data-management/influxdb-connection-patterns.md +432 -432
- tapps_agents/experts/knowledge/database-data-management/influxdb-patterns.md +442 -442
- tapps_agents/experts/knowledge/database-data-management/migration-strategies.md +216 -216
- tapps_agents/experts/knowledge/database-data-management/nosql-patterns.md +259 -259
- tapps_agents/experts/knowledge/database-data-management/scalability-patterns.md +184 -184
- tapps_agents/experts/knowledge/database-data-management/sql-optimization.md +175 -175
- tapps_agents/experts/knowledge/database-data-management/time-series-modeling.md +444 -444
- tapps_agents/experts/knowledge/development-workflow/README.md +16 -16
- tapps_agents/experts/knowledge/development-workflow/automation-best-practices.md +216 -216
- tapps_agents/experts/knowledge/development-workflow/build-strategies.md +198 -198
- tapps_agents/experts/knowledge/development-workflow/deployment-patterns.md +205 -205
- tapps_agents/experts/knowledge/development-workflow/git-workflows.md +205 -205
- tapps_agents/experts/knowledge/documentation-knowledge-management/README.md +16 -16
- tapps_agents/experts/knowledge/documentation-knowledge-management/api-documentation-patterns.md +231 -231
- tapps_agents/experts/knowledge/documentation-knowledge-management/documentation-standards.md +191 -191
- tapps_agents/experts/knowledge/documentation-knowledge-management/knowledge-management.md +171 -171
- tapps_agents/experts/knowledge/documentation-knowledge-management/technical-writing-guide.md +192 -192
- tapps_agents/experts/knowledge/observability-monitoring/alerting-patterns.md +461 -461
- tapps_agents/experts/knowledge/observability-monitoring/apm-tools.md +459 -459
- tapps_agents/experts/knowledge/observability-monitoring/distributed-tracing.md +367 -367
- tapps_agents/experts/knowledge/observability-monitoring/logging-strategies.md +478 -478
- tapps_agents/experts/knowledge/observability-monitoring/metrics-and-monitoring.md +510 -510
- tapps_agents/experts/knowledge/observability-monitoring/observability-best-practices.md +492 -492
- tapps_agents/experts/knowledge/observability-monitoring/open-telemetry.md +573 -573
- tapps_agents/experts/knowledge/observability-monitoring/slo-sli-sla.md +419 -419
- tapps_agents/experts/knowledge/performance/anti-patterns.md +284 -284
- tapps_agents/experts/knowledge/performance/api-performance.md +256 -256
- tapps_agents/experts/knowledge/performance/caching.md +327 -327
- tapps_agents/experts/knowledge/performance/database-performance.md +252 -252
- tapps_agents/experts/knowledge/performance/optimization-patterns.md +327 -327
- tapps_agents/experts/knowledge/performance/profiling.md +297 -297
- tapps_agents/experts/knowledge/performance/resource-management.md +293 -293
- tapps_agents/experts/knowledge/performance/scalability.md +306 -306
- tapps_agents/experts/knowledge/security/owasp-top10.md +209 -209
- tapps_agents/experts/knowledge/security/secure-coding-practices.md +207 -207
- tapps_agents/experts/knowledge/security/threat-modeling.md +220 -220
- tapps_agents/experts/knowledge/security/vulnerability-patterns.md +342 -342
- tapps_agents/experts/knowledge/software-architecture/docker-compose-patterns.md +314 -314
- tapps_agents/experts/knowledge/software-architecture/microservices-patterns.md +379 -379
- tapps_agents/experts/knowledge/software-architecture/service-communication.md +316 -316
- tapps_agents/experts/knowledge/testing/best-practices.md +310 -310
- tapps_agents/experts/knowledge/testing/coverage-analysis.md +293 -293
- tapps_agents/experts/knowledge/testing/mocking.md +256 -256
- tapps_agents/experts/knowledge/testing/test-automation.md +276 -276
- tapps_agents/experts/knowledge/testing/test-data.md +271 -271
- tapps_agents/experts/knowledge/testing/test-design-patterns.md +280 -280
- tapps_agents/experts/knowledge/testing/test-maintenance.md +236 -236
- tapps_agents/experts/knowledge/testing/test-strategies.md +311 -311
- tapps_agents/experts/knowledge/user-experience/information-architecture.md +325 -325
- tapps_agents/experts/knowledge/user-experience/interaction-design.md +363 -363
- tapps_agents/experts/knowledge/user-experience/prototyping.md +293 -293
- tapps_agents/experts/knowledge/user-experience/usability-heuristics.md +337 -337
- tapps_agents/experts/knowledge/user-experience/usability-testing.md +311 -311
- tapps_agents/experts/knowledge/user-experience/user-journeys.md +296 -296
- tapps_agents/experts/knowledge/user-experience/user-research.md +373 -373
- tapps_agents/experts/knowledge/user-experience/ux-principles.md +340 -340
- tapps_agents/experts/knowledge_freshness.py +321 -321
- tapps_agents/experts/knowledge_ingestion.py +438 -438
- tapps_agents/experts/knowledge_need_detector.py +93 -93
- tapps_agents/experts/knowledge_validator.py +382 -382
- tapps_agents/experts/observability.py +440 -440
- tapps_agents/experts/passive_notifier.py +238 -238
- tapps_agents/experts/proactive_orchestrator.py +32 -32
- tapps_agents/experts/rag_chunker.py +205 -205
- tapps_agents/experts/rag_embedder.py +152 -152
- tapps_agents/experts/rag_evaluation.py +299 -299
- tapps_agents/experts/rag_index.py +303 -303
- tapps_agents/experts/rag_metrics.py +293 -293
- tapps_agents/experts/rag_safety.py +263 -263
- tapps_agents/experts/report_generator.py +296 -296
- tapps_agents/experts/setup_wizard.py +441 -441
- tapps_agents/experts/simple_rag.py +431 -431
- tapps_agents/experts/vector_rag.py +354 -354
- tapps_agents/experts/weight_distributor.py +304 -304
- tapps_agents/health/__init__.py +24 -24
- tapps_agents/health/base.py +75 -75
- tapps_agents/health/checks/__init__.py +22 -22
- tapps_agents/health/checks/automation.py +127 -127
- tapps_agents/health/checks/context7_cache.py +210 -210
- tapps_agents/health/checks/environment.py +116 -116
- tapps_agents/health/checks/execution.py +170 -170
- tapps_agents/health/checks/knowledge_base.py +187 -187
- tapps_agents/health/checks/outcomes.py +324 -324
- tapps_agents/health/collector.py +280 -280
- tapps_agents/health/dashboard.py +137 -137
- tapps_agents/health/metrics.py +151 -151
- tapps_agents/health/orchestrator.py +271 -271
- tapps_agents/health/registry.py +166 -166
- tapps_agents/hooks/__init__.py +33 -33
- tapps_agents/hooks/config.py +140 -140
- tapps_agents/hooks/events.py +135 -135
- tapps_agents/hooks/executor.py +128 -128
- tapps_agents/hooks/manager.py +143 -143
- tapps_agents/integration/__init__.py +8 -8
- tapps_agents/integration/service_integrator.py +121 -121
- tapps_agents/integrations/__init__.py +10 -10
- tapps_agents/integrations/clawdbot.py +525 -525
- tapps_agents/integrations/memory_bridge.py +356 -356
- tapps_agents/mcp/__init__.py +18 -18
- tapps_agents/mcp/gateway.py +112 -112
- tapps_agents/mcp/servers/__init__.py +13 -13
- tapps_agents/mcp/servers/analysis.py +204 -204
- tapps_agents/mcp/servers/context7.py +198 -198
- tapps_agents/mcp/servers/filesystem.py +218 -218
- tapps_agents/mcp/servers/git.py +201 -201
- tapps_agents/mcp/tool_registry.py +115 -115
- tapps_agents/quality/__init__.py +54 -54
- tapps_agents/quality/coverage_analyzer.py +379 -379
- tapps_agents/quality/enforcement.py +82 -82
- tapps_agents/quality/gates/__init__.py +37 -37
- tapps_agents/quality/gates/approval_gate.py +255 -255
- tapps_agents/quality/gates/base.py +84 -84
- tapps_agents/quality/gates/exceptions.py +43 -43
- tapps_agents/quality/gates/policy_gate.py +195 -195
- tapps_agents/quality/gates/registry.py +239 -239
- tapps_agents/quality/gates/security_gate.py +156 -156
- tapps_agents/quality/quality_gates.py +369 -369
- tapps_agents/quality/secret_scanner.py +335 -335
- tapps_agents/session/__init__.py +19 -19
- tapps_agents/session/manager.py +256 -256
- tapps_agents/simple_mode/__init__.py +66 -66
- tapps_agents/simple_mode/agent_contracts.py +357 -357
- tapps_agents/simple_mode/beads_hooks.py +151 -151
- tapps_agents/simple_mode/code_snippet_handler.py +382 -382
- tapps_agents/simple_mode/documentation_manager.py +395 -395
- tapps_agents/simple_mode/documentation_reader.py +187 -187
- tapps_agents/simple_mode/file_inference.py +292 -292
- tapps_agents/simple_mode/framework_change_detector.py +268 -268
- tapps_agents/simple_mode/intent_parser.py +510 -510
- tapps_agents/simple_mode/learning_progression.py +358 -358
- tapps_agents/simple_mode/nl_handler.py +700 -700
- tapps_agents/simple_mode/onboarding.py +253 -253
- tapps_agents/simple_mode/orchestrators/__init__.py +38 -38
- tapps_agents/simple_mode/orchestrators/base.py +185 -185
- tapps_agents/simple_mode/orchestrators/breakdown_orchestrator.py +49 -49
- tapps_agents/simple_mode/orchestrators/brownfield_orchestrator.py +135 -135
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2700 -2667
- tapps_agents/simple_mode/orchestrators/deliverable_checklist.py +349 -349
- tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py +53 -53
- tapps_agents/simple_mode/orchestrators/epic_orchestrator.py +122 -122
- tapps_agents/simple_mode/orchestrators/explore_orchestrator.py +184 -184
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
- tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py +206 -206
- tapps_agents/simple_mode/orchestrators/pr_orchestrator.py +237 -237
- tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py +222 -222
- tapps_agents/simple_mode/orchestrators/requirements_tracer.py +262 -262
- tapps_agents/simple_mode/orchestrators/resume_orchestrator.py +210 -210
- tapps_agents/simple_mode/orchestrators/review_orchestrator.py +161 -161
- tapps_agents/simple_mode/orchestrators/test_orchestrator.py +82 -82
- tapps_agents/simple_mode/output_aggregator.py +340 -340
- tapps_agents/simple_mode/result_formatters.py +598 -598
- tapps_agents/simple_mode/step_dependencies.py +382 -382
- tapps_agents/simple_mode/step_results.py +276 -276
- tapps_agents/simple_mode/streaming.py +388 -388
- tapps_agents/simple_mode/variations.py +129 -129
- tapps_agents/simple_mode/visual_feedback.py +238 -238
- tapps_agents/simple_mode/zero_config.py +274 -274
- tapps_agents/suggestions/__init__.py +8 -8
- tapps_agents/suggestions/inline_suggester.py +52 -52
- tapps_agents/templates/__init__.py +8 -8
- tapps_agents/templates/microservice_generator.py +274 -274
- tapps_agents/utils/env_validator.py +291 -291
- tapps_agents/workflow/__init__.py +171 -171
- tapps_agents/workflow/acceptance_verifier.py +132 -132
- tapps_agents/workflow/agent_handlers/__init__.py +41 -41
- tapps_agents/workflow/agent_handlers/analyst_handler.py +75 -75
- tapps_agents/workflow/agent_handlers/architect_handler.py +107 -107
- tapps_agents/workflow/agent_handlers/base.py +84 -84
- tapps_agents/workflow/agent_handlers/debugger_handler.py +100 -100
- tapps_agents/workflow/agent_handlers/designer_handler.py +110 -110
- tapps_agents/workflow/agent_handlers/documenter_handler.py +94 -94
- tapps_agents/workflow/agent_handlers/implementer_handler.py +235 -235
- tapps_agents/workflow/agent_handlers/ops_handler.py +62 -62
- tapps_agents/workflow/agent_handlers/orchestrator_handler.py +43 -43
- tapps_agents/workflow/agent_handlers/planner_handler.py +98 -98
- tapps_agents/workflow/agent_handlers/registry.py +119 -119
- tapps_agents/workflow/agent_handlers/reviewer_handler.py +119 -119
- tapps_agents/workflow/agent_handlers/tester_handler.py +69 -69
- tapps_agents/workflow/analytics_accessor.py +337 -337
- tapps_agents/workflow/analytics_alerts.py +416 -416
- tapps_agents/workflow/analytics_dashboard_cursor.py +281 -281
- tapps_agents/workflow/analytics_dual_write.py +103 -103
- tapps_agents/workflow/analytics_integration.py +119 -119
- tapps_agents/workflow/analytics_query_parser.py +278 -278
- tapps_agents/workflow/analytics_visualizer.py +259 -259
- tapps_agents/workflow/artifact_helper.py +204 -204
- tapps_agents/workflow/audit_logger.py +263 -263
- tapps_agents/workflow/auto_execution_config.py +340 -340
- tapps_agents/workflow/auto_progression.py +586 -586
- tapps_agents/workflow/branch_cleanup.py +349 -349
- tapps_agents/workflow/checkpoint.py +256 -256
- tapps_agents/workflow/checkpoint_manager.py +178 -178
- tapps_agents/workflow/code_artifact.py +179 -179
- tapps_agents/workflow/common_enums.py +96 -96
- tapps_agents/workflow/confirmation_handler.py +130 -130
- tapps_agents/workflow/context_analyzer.py +222 -222
- tapps_agents/workflow/context_artifact.py +230 -230
- tapps_agents/workflow/cursor_chat.py +94 -94
- tapps_agents/workflow/cursor_executor.py +2337 -2196
- tapps_agents/workflow/cursor_skill_helper.py +516 -516
- tapps_agents/workflow/dependency_resolver.py +244 -244
- tapps_agents/workflow/design_artifact.py +156 -156
- tapps_agents/workflow/detector.py +751 -751
- tapps_agents/workflow/direct_execution_fallback.py +301 -301
- tapps_agents/workflow/docs_artifact.py +168 -168
- tapps_agents/workflow/enforcer.py +389 -389
- tapps_agents/workflow/enhancement_artifact.py +142 -142
- tapps_agents/workflow/error_recovery.py +806 -806
- tapps_agents/workflow/event_bus.py +183 -183
- tapps_agents/workflow/event_log.py +612 -612
- tapps_agents/workflow/events.py +63 -63
- tapps_agents/workflow/exceptions.py +43 -43
- tapps_agents/workflow/execution_graph.py +498 -498
- tapps_agents/workflow/execution_plan.py +126 -126
- tapps_agents/workflow/file_utils.py +186 -186
- tapps_agents/workflow/gate_evaluator.py +182 -182
- tapps_agents/workflow/gate_integration.py +200 -200
- tapps_agents/workflow/graph_visualizer.py +130 -130
- tapps_agents/workflow/health_checker.py +206 -206
- tapps_agents/workflow/logging_helper.py +243 -243
- tapps_agents/workflow/manifest.py +582 -582
- tapps_agents/workflow/marker_writer.py +250 -250
- tapps_agents/workflow/message_formatter.py +188 -188
- tapps_agents/workflow/messaging.py +325 -325
- tapps_agents/workflow/metadata_models.py +91 -91
- tapps_agents/workflow/metrics_integration.py +226 -226
- tapps_agents/workflow/migration_utils.py +116 -116
- tapps_agents/workflow/models.py +148 -111
- tapps_agents/workflow/nlp_config.py +198 -198
- tapps_agents/workflow/nlp_error_handler.py +207 -207
- tapps_agents/workflow/nlp_executor.py +163 -163
- tapps_agents/workflow/nlp_parser.py +528 -528
- tapps_agents/workflow/observability_dashboard.py +451 -451
- tapps_agents/workflow/observer.py +170 -170
- tapps_agents/workflow/ops_artifact.py +257 -257
- tapps_agents/workflow/output_passing.py +214 -214
- tapps_agents/workflow/parallel_executor.py +463 -463
- tapps_agents/workflow/planning_artifact.py +179 -179
- tapps_agents/workflow/preset_loader.py +285 -285
- tapps_agents/workflow/preset_recommender.py +270 -270
- tapps_agents/workflow/progress_logger.py +145 -145
- tapps_agents/workflow/progress_manager.py +303 -303
- tapps_agents/workflow/progress_monitor.py +186 -186
- tapps_agents/workflow/progress_updates.py +423 -423
- tapps_agents/workflow/quality_artifact.py +158 -158
- tapps_agents/workflow/quality_loopback.py +101 -101
- tapps_agents/workflow/recommender.py +387 -387
- tapps_agents/workflow/remediation_loop.py +166 -166
- tapps_agents/workflow/result_aggregator.py +300 -300
- tapps_agents/workflow/review_artifact.py +185 -185
- tapps_agents/workflow/schema_validator.py +522 -522
- tapps_agents/workflow/session_handoff.py +178 -178
- tapps_agents/workflow/skill_invoker.py +648 -648
- tapps_agents/workflow/state_manager.py +756 -756
- tapps_agents/workflow/state_persistence_config.py +331 -331
- tapps_agents/workflow/status_monitor.py +449 -449
- tapps_agents/workflow/step_checkpoint.py +314 -314
- tapps_agents/workflow/step_details.py +201 -201
- tapps_agents/workflow/story_models.py +147 -147
- tapps_agents/workflow/streaming.py +416 -416
- tapps_agents/workflow/suggestion_engine.py +552 -552
- tapps_agents/workflow/testing_artifact.py +186 -186
- tapps_agents/workflow/timeline.py +158 -158
- tapps_agents/workflow/token_integration.py +209 -209
- tapps_agents/workflow/validation.py +217 -217
- tapps_agents/workflow/visual_feedback.py +391 -391
- tapps_agents/workflow/workflow_chain.py +95 -95
- tapps_agents/workflow/workflow_summary.py +219 -219
- tapps_agents/workflow/worktree_manager.py +724 -724
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/METADATA +672 -672
- tapps_agents-3.6.0.dist-info/RECORD +758 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/licenses/LICENSE +22 -22
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +0 -324
- tapps_agents-3.5.40.dist-info/RECORD +0 -760
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/top_level.txt +0 -0
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
"""Workflow Engine - YAML-based workflow orchestration.
|
|
2
|
-
|
|
3
|
-
2025 Enhancements:
|
|
4
|
-
- DurableWorkflowState: Event-sourced state with checkpoints for resume
|
|
5
|
-
- Automatic recovery from any failure point
|
|
6
|
-
- Complete audit trail via event log
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
# Foreground Agent Artifacts (Epic 2)
|
|
10
|
-
from .code_artifact import CodeArtifact, CodeChange
|
|
11
|
-
from .context_artifact import (
|
|
12
|
-
ContextArtifact,
|
|
13
|
-
ContextQuery,
|
|
14
|
-
LibraryCacheEntry,
|
|
15
|
-
ProjectProfile,
|
|
16
|
-
)
|
|
17
|
-
from .dependency_resolver import DependencyGraph, DependencyResolver
|
|
18
|
-
from .design_artifact import Component, DesignArtifact
|
|
19
|
-
from .detector import (
|
|
20
|
-
ProjectCharacteristics,
|
|
21
|
-
ProjectDetector,
|
|
22
|
-
ProjectType,
|
|
23
|
-
WorkflowTrack,
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
# Background Agents removed - Artifact classes remain (data structures only)
|
|
27
|
-
# Background Agent Artifacts (data structures, not Background Agent implementations)
|
|
28
|
-
from .docs_artifact import DocFileResult, DocumentationArtifact
|
|
29
|
-
|
|
30
|
-
# 2025: Durable Workflow State Machine
|
|
31
|
-
from .durable_state import (
|
|
32
|
-
Checkpoint,
|
|
33
|
-
DurableWorkflowState,
|
|
34
|
-
EventStore,
|
|
35
|
-
EventType,
|
|
36
|
-
WorkflowEvent as DurableWorkflowEvent,
|
|
37
|
-
get_durable_state,
|
|
38
|
-
resume_workflow,
|
|
39
|
-
)
|
|
40
|
-
from .enhancement_artifact import EnhancementArtifact, EnhancementStage
|
|
41
|
-
from .event_log import WorkflowEvent, WorkflowEventLog
|
|
42
|
-
from .exceptions import (
|
|
43
|
-
DashboardGenerationError,
|
|
44
|
-
EmptyWorkflowError,
|
|
45
|
-
GraphGenerationError,
|
|
46
|
-
InvalidTraceError,
|
|
47
|
-
ObservabilityError,
|
|
48
|
-
OpenTelemetryExportError,
|
|
49
|
-
)
|
|
50
|
-
from .execution_graph import ExecutionGraph, ExecutionGraphGenerator
|
|
51
|
-
from .executor import WorkflowExecutor
|
|
52
|
-
from .graph_visualizer import GraphVisualizer
|
|
53
|
-
from .observability_dashboard import ObservabilityDashboard
|
|
54
|
-
from .logging_helper import WorkflowLogger
|
|
55
|
-
from .messaging import (
|
|
56
|
-
FileMessageBus,
|
|
57
|
-
StatusUpdateMessage,
|
|
58
|
-
TaskAssignmentMessage,
|
|
59
|
-
TaskCompleteMessage,
|
|
60
|
-
)
|
|
61
|
-
from .models import (
|
|
62
|
-
Artifact,
|
|
63
|
-
Workflow,
|
|
64
|
-
WorkflowSettings,
|
|
65
|
-
WorkflowState,
|
|
66
|
-
WorkflowStep,
|
|
67
|
-
WorkflowType,
|
|
68
|
-
)
|
|
69
|
-
from .ops_artifact import (
|
|
70
|
-
ComplianceCheck,
|
|
71
|
-
DeploymentStep,
|
|
72
|
-
InfrastructureFile,
|
|
73
|
-
OperationsArtifact,
|
|
74
|
-
SecurityIssue,
|
|
75
|
-
)
|
|
76
|
-
from .parser import WorkflowParser
|
|
77
|
-
from .planning_artifact import PlanningArtifact, UserStory
|
|
78
|
-
from .progress_monitor import ProgressMetrics, WorkflowProgressMonitor
|
|
79
|
-
from .quality_artifact import QualityArtifact, ToolResult
|
|
80
|
-
from .recommender import (
|
|
81
|
-
WorkflowRecommendation,
|
|
82
|
-
WorkflowRecommender,
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
# Result Aggregation (Epic 2)
|
|
86
|
-
from .result_aggregator import Conflict, ResultAggregator
|
|
87
|
-
from .review_artifact import ReviewArtifact, ReviewComment
|
|
88
|
-
from .schema_validator import SchemaVersion, ValidationError, WorkflowSchemaValidator
|
|
89
|
-
from .testing_artifact import CoverageSummary, TestingArtifact, TestResult
|
|
90
|
-
|
|
91
|
-
__all__ = [
|
|
92
|
-
"WorkflowParser",
|
|
93
|
-
"WorkflowExecutor",
|
|
94
|
-
"Workflow",
|
|
95
|
-
"WorkflowStep",
|
|
96
|
-
"WorkflowState",
|
|
97
|
-
"WorkflowType",
|
|
98
|
-
"Artifact",
|
|
99
|
-
"WorkflowSettings",
|
|
100
|
-
"FileMessageBus",
|
|
101
|
-
"TaskAssignmentMessage",
|
|
102
|
-
"StatusUpdateMessage",
|
|
103
|
-
"TaskCompleteMessage",
|
|
104
|
-
"WorkflowLogger",
|
|
105
|
-
"ProjectDetector",
|
|
106
|
-
"ProjectType",
|
|
107
|
-
"ProjectCharacteristics",
|
|
108
|
-
"WorkflowTrack",
|
|
109
|
-
"WorkflowRecommender",
|
|
110
|
-
"WorkflowRecommendation",
|
|
111
|
-
# Background Agents removed - Artifact classes remain (data structures only)
|
|
112
|
-
"DocumentationArtifact",
|
|
113
|
-
"DocFileResult",
|
|
114
|
-
"OperationsArtifact",
|
|
115
|
-
"SecurityIssue",
|
|
116
|
-
"ComplianceCheck",
|
|
117
|
-
"DeploymentStep",
|
|
118
|
-
"InfrastructureFile",
|
|
119
|
-
"ContextArtifact",
|
|
120
|
-
"LibraryCacheEntry",
|
|
121
|
-
"ContextQuery",
|
|
122
|
-
"ProjectProfile",
|
|
123
|
-
"QualityArtifact",
|
|
124
|
-
"ToolResult",
|
|
125
|
-
"TestingArtifact",
|
|
126
|
-
"TestResult",
|
|
127
|
-
"CoverageSummary",
|
|
128
|
-
# Foreground Agent Artifacts
|
|
129
|
-
"CodeArtifact",
|
|
130
|
-
"CodeChange",
|
|
131
|
-
"DesignArtifact",
|
|
132
|
-
"Component",
|
|
133
|
-
"ReviewArtifact",
|
|
134
|
-
"ReviewComment",
|
|
135
|
-
"PlanningArtifact",
|
|
136
|
-
"UserStory",
|
|
137
|
-
"EnhancementArtifact",
|
|
138
|
-
"EnhancementStage",
|
|
139
|
-
# Result Aggregation
|
|
140
|
-
"ResultAggregator",
|
|
141
|
-
"Conflict",
|
|
142
|
-
# Epic 5: Workflow Engine Enhancements
|
|
143
|
-
"WorkflowSchemaValidator",
|
|
144
|
-
"SchemaVersion",
|
|
145
|
-
"ValidationError",
|
|
146
|
-
"DependencyResolver",
|
|
147
|
-
"DependencyGraph",
|
|
148
|
-
"WorkflowEventLog",
|
|
149
|
-
"WorkflowEvent",
|
|
150
|
-
"WorkflowProgressMonitor",
|
|
151
|
-
"ProgressMetrics",
|
|
152
|
-
"ExecutionGraph",
|
|
153
|
-
"ExecutionGraphGenerator",
|
|
154
|
-
"GraphVisualizer",
|
|
155
|
-
"ObservabilityDashboard",
|
|
156
|
-
# Observability exceptions
|
|
157
|
-
"ObservabilityError",
|
|
158
|
-
"GraphGenerationError",
|
|
159
|
-
"EmptyWorkflowError",
|
|
160
|
-
"InvalidTraceError",
|
|
161
|
-
"DashboardGenerationError",
|
|
162
|
-
"OpenTelemetryExportError",
|
|
163
|
-
# 2025: Durable Workflow State Machine
|
|
164
|
-
"DurableWorkflowState",
|
|
165
|
-
"DurableWorkflowEvent",
|
|
166
|
-
"EventStore",
|
|
167
|
-
"EventType",
|
|
168
|
-
"Checkpoint",
|
|
169
|
-
"get_durable_state",
|
|
170
|
-
"resume_workflow",
|
|
171
|
-
]
|
|
1
|
+
"""Workflow Engine - YAML-based workflow orchestration.
|
|
2
|
+
|
|
3
|
+
2025 Enhancements:
|
|
4
|
+
- DurableWorkflowState: Event-sourced state with checkpoints for resume
|
|
5
|
+
- Automatic recovery from any failure point
|
|
6
|
+
- Complete audit trail via event log
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
# Foreground Agent Artifacts (Epic 2)
|
|
10
|
+
from .code_artifact import CodeArtifact, CodeChange
|
|
11
|
+
from .context_artifact import (
|
|
12
|
+
ContextArtifact,
|
|
13
|
+
ContextQuery,
|
|
14
|
+
LibraryCacheEntry,
|
|
15
|
+
ProjectProfile,
|
|
16
|
+
)
|
|
17
|
+
from .dependency_resolver import DependencyGraph, DependencyResolver
|
|
18
|
+
from .design_artifact import Component, DesignArtifact
|
|
19
|
+
from .detector import (
|
|
20
|
+
ProjectCharacteristics,
|
|
21
|
+
ProjectDetector,
|
|
22
|
+
ProjectType,
|
|
23
|
+
WorkflowTrack,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
# Background Agents removed - Artifact classes remain (data structures only)
|
|
27
|
+
# Background Agent Artifacts (data structures, not Background Agent implementations)
|
|
28
|
+
from .docs_artifact import DocFileResult, DocumentationArtifact
|
|
29
|
+
|
|
30
|
+
# 2025: Durable Workflow State Machine
|
|
31
|
+
from .durable_state import (
|
|
32
|
+
Checkpoint,
|
|
33
|
+
DurableWorkflowState,
|
|
34
|
+
EventStore,
|
|
35
|
+
EventType,
|
|
36
|
+
WorkflowEvent as DurableWorkflowEvent,
|
|
37
|
+
get_durable_state,
|
|
38
|
+
resume_workflow,
|
|
39
|
+
)
|
|
40
|
+
from .enhancement_artifact import EnhancementArtifact, EnhancementStage
|
|
41
|
+
from .event_log import WorkflowEvent, WorkflowEventLog
|
|
42
|
+
from .exceptions import (
|
|
43
|
+
DashboardGenerationError,
|
|
44
|
+
EmptyWorkflowError,
|
|
45
|
+
GraphGenerationError,
|
|
46
|
+
InvalidTraceError,
|
|
47
|
+
ObservabilityError,
|
|
48
|
+
OpenTelemetryExportError,
|
|
49
|
+
)
|
|
50
|
+
from .execution_graph import ExecutionGraph, ExecutionGraphGenerator
|
|
51
|
+
from .executor import WorkflowExecutor
|
|
52
|
+
from .graph_visualizer import GraphVisualizer
|
|
53
|
+
from .observability_dashboard import ObservabilityDashboard
|
|
54
|
+
from .logging_helper import WorkflowLogger
|
|
55
|
+
from .messaging import (
|
|
56
|
+
FileMessageBus,
|
|
57
|
+
StatusUpdateMessage,
|
|
58
|
+
TaskAssignmentMessage,
|
|
59
|
+
TaskCompleteMessage,
|
|
60
|
+
)
|
|
61
|
+
from .models import (
|
|
62
|
+
Artifact,
|
|
63
|
+
Workflow,
|
|
64
|
+
WorkflowSettings,
|
|
65
|
+
WorkflowState,
|
|
66
|
+
WorkflowStep,
|
|
67
|
+
WorkflowType,
|
|
68
|
+
)
|
|
69
|
+
from .ops_artifact import (
|
|
70
|
+
ComplianceCheck,
|
|
71
|
+
DeploymentStep,
|
|
72
|
+
InfrastructureFile,
|
|
73
|
+
OperationsArtifact,
|
|
74
|
+
SecurityIssue,
|
|
75
|
+
)
|
|
76
|
+
from .parser import WorkflowParser
|
|
77
|
+
from .planning_artifact import PlanningArtifact, UserStory
|
|
78
|
+
from .progress_monitor import ProgressMetrics, WorkflowProgressMonitor
|
|
79
|
+
from .quality_artifact import QualityArtifact, ToolResult
|
|
80
|
+
from .recommender import (
|
|
81
|
+
WorkflowRecommendation,
|
|
82
|
+
WorkflowRecommender,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Result Aggregation (Epic 2)
|
|
86
|
+
from .result_aggregator import Conflict, ResultAggregator
|
|
87
|
+
from .review_artifact import ReviewArtifact, ReviewComment
|
|
88
|
+
from .schema_validator import SchemaVersion, ValidationError, WorkflowSchemaValidator
|
|
89
|
+
from .testing_artifact import CoverageSummary, TestingArtifact, TestResult
|
|
90
|
+
|
|
91
|
+
__all__ = [
|
|
92
|
+
"WorkflowParser",
|
|
93
|
+
"WorkflowExecutor",
|
|
94
|
+
"Workflow",
|
|
95
|
+
"WorkflowStep",
|
|
96
|
+
"WorkflowState",
|
|
97
|
+
"WorkflowType",
|
|
98
|
+
"Artifact",
|
|
99
|
+
"WorkflowSettings",
|
|
100
|
+
"FileMessageBus",
|
|
101
|
+
"TaskAssignmentMessage",
|
|
102
|
+
"StatusUpdateMessage",
|
|
103
|
+
"TaskCompleteMessage",
|
|
104
|
+
"WorkflowLogger",
|
|
105
|
+
"ProjectDetector",
|
|
106
|
+
"ProjectType",
|
|
107
|
+
"ProjectCharacteristics",
|
|
108
|
+
"WorkflowTrack",
|
|
109
|
+
"WorkflowRecommender",
|
|
110
|
+
"WorkflowRecommendation",
|
|
111
|
+
# Background Agents removed - Artifact classes remain (data structures only)
|
|
112
|
+
"DocumentationArtifact",
|
|
113
|
+
"DocFileResult",
|
|
114
|
+
"OperationsArtifact",
|
|
115
|
+
"SecurityIssue",
|
|
116
|
+
"ComplianceCheck",
|
|
117
|
+
"DeploymentStep",
|
|
118
|
+
"InfrastructureFile",
|
|
119
|
+
"ContextArtifact",
|
|
120
|
+
"LibraryCacheEntry",
|
|
121
|
+
"ContextQuery",
|
|
122
|
+
"ProjectProfile",
|
|
123
|
+
"QualityArtifact",
|
|
124
|
+
"ToolResult",
|
|
125
|
+
"TestingArtifact",
|
|
126
|
+
"TestResult",
|
|
127
|
+
"CoverageSummary",
|
|
128
|
+
# Foreground Agent Artifacts
|
|
129
|
+
"CodeArtifact",
|
|
130
|
+
"CodeChange",
|
|
131
|
+
"DesignArtifact",
|
|
132
|
+
"Component",
|
|
133
|
+
"ReviewArtifact",
|
|
134
|
+
"ReviewComment",
|
|
135
|
+
"PlanningArtifact",
|
|
136
|
+
"UserStory",
|
|
137
|
+
"EnhancementArtifact",
|
|
138
|
+
"EnhancementStage",
|
|
139
|
+
# Result Aggregation
|
|
140
|
+
"ResultAggregator",
|
|
141
|
+
"Conflict",
|
|
142
|
+
# Epic 5: Workflow Engine Enhancements
|
|
143
|
+
"WorkflowSchemaValidator",
|
|
144
|
+
"SchemaVersion",
|
|
145
|
+
"ValidationError",
|
|
146
|
+
"DependencyResolver",
|
|
147
|
+
"DependencyGraph",
|
|
148
|
+
"WorkflowEventLog",
|
|
149
|
+
"WorkflowEvent",
|
|
150
|
+
"WorkflowProgressMonitor",
|
|
151
|
+
"ProgressMetrics",
|
|
152
|
+
"ExecutionGraph",
|
|
153
|
+
"ExecutionGraphGenerator",
|
|
154
|
+
"GraphVisualizer",
|
|
155
|
+
"ObservabilityDashboard",
|
|
156
|
+
# Observability exceptions
|
|
157
|
+
"ObservabilityError",
|
|
158
|
+
"GraphGenerationError",
|
|
159
|
+
"EmptyWorkflowError",
|
|
160
|
+
"InvalidTraceError",
|
|
161
|
+
"DashboardGenerationError",
|
|
162
|
+
"OpenTelemetryExportError",
|
|
163
|
+
# 2025: Durable Workflow State Machine
|
|
164
|
+
"DurableWorkflowState",
|
|
165
|
+
"DurableWorkflowEvent",
|
|
166
|
+
"EventStore",
|
|
167
|
+
"EventType",
|
|
168
|
+
"Checkpoint",
|
|
169
|
+
"get_durable_state",
|
|
170
|
+
"resume_workflow",
|
|
171
|
+
]
|
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Acceptance Criteria Verifier
|
|
3
|
-
|
|
4
|
-
Verifies acceptance criteria for story-level workflow steps.
|
|
5
|
-
Basic text matching implementation for Phase 3.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
from pathlib import Path
|
|
9
|
-
from typing import Any
|
|
10
|
-
|
|
11
|
-
from .models import Artifact
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class AcceptanceCriteriaVerifier:
|
|
15
|
-
"""Verify acceptance criteria for stories (basic text matching)."""
|
|
16
|
-
|
|
17
|
-
def verify(
|
|
18
|
-
self,
|
|
19
|
-
criteria: list[str],
|
|
20
|
-
artifacts: dict[str, Artifact],
|
|
21
|
-
code_files: list[Path] | None = None,
|
|
22
|
-
) -> dict[str, Any]:
|
|
23
|
-
"""
|
|
24
|
-
Verify acceptance criteria against artifacts and code files.
|
|
25
|
-
|
|
26
|
-
Args:
|
|
27
|
-
criteria: List of acceptance criteria strings
|
|
28
|
-
artifacts: Dictionary of artifacts created by the step
|
|
29
|
-
code_files: Optional list of code file paths to check
|
|
30
|
-
|
|
31
|
-
Returns:
|
|
32
|
-
Dictionary with verification results:
|
|
33
|
-
{
|
|
34
|
-
"all_passed": bool,
|
|
35
|
-
"results": [
|
|
36
|
-
{
|
|
37
|
-
"criterion": str,
|
|
38
|
-
"passed": bool,
|
|
39
|
-
"evidence": str | None
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
"""
|
|
44
|
-
results = []
|
|
45
|
-
all_passed = True
|
|
46
|
-
|
|
47
|
-
for criterion in criteria:
|
|
48
|
-
passed = False
|
|
49
|
-
evidence = None
|
|
50
|
-
|
|
51
|
-
# Simple text matching: check if criterion keywords appear in artifacts
|
|
52
|
-
criterion_lower = criterion.lower()
|
|
53
|
-
|
|
54
|
-
# Check artifacts
|
|
55
|
-
for artifact_name, artifact in artifacts.items():
|
|
56
|
-
artifact_content = self._get_artifact_content(artifact)
|
|
57
|
-
if artifact_content and self._matches_criterion(
|
|
58
|
-
criterion_lower, artifact_content
|
|
59
|
-
):
|
|
60
|
-
passed = True
|
|
61
|
-
evidence = f"Found in artifact: {artifact_name}"
|
|
62
|
-
break
|
|
63
|
-
|
|
64
|
-
# Check code files if provided
|
|
65
|
-
if not passed and code_files:
|
|
66
|
-
for code_file in code_files:
|
|
67
|
-
if code_file.exists():
|
|
68
|
-
try:
|
|
69
|
-
content = code_file.read_text(encoding="utf-8")
|
|
70
|
-
if self._matches_criterion(criterion_lower, content):
|
|
71
|
-
passed = True
|
|
72
|
-
evidence = f"Found in code file: {code_file}"
|
|
73
|
-
break
|
|
74
|
-
except Exception:
|
|
75
|
-
# Skip files that can't be read
|
|
76
|
-
continue
|
|
77
|
-
|
|
78
|
-
if not passed:
|
|
79
|
-
all_passed = False
|
|
80
|
-
|
|
81
|
-
results.append(
|
|
82
|
-
{
|
|
83
|
-
"criterion": criterion,
|
|
84
|
-
"passed": passed,
|
|
85
|
-
"evidence": evidence,
|
|
86
|
-
}
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
return {
|
|
90
|
-
"all_passed": all_passed,
|
|
91
|
-
"results": results,
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
def _get_artifact_content(self, artifact: Artifact) -> str | None:
|
|
95
|
-
"""Extract text content from artifact for matching."""
|
|
96
|
-
if artifact.path:
|
|
97
|
-
artifact_path = Path(artifact.path)
|
|
98
|
-
if artifact_path.exists():
|
|
99
|
-
try:
|
|
100
|
-
return artifact_path.read_text(encoding="utf-8")
|
|
101
|
-
except Exception:
|
|
102
|
-
return None
|
|
103
|
-
return None
|
|
104
|
-
|
|
105
|
-
def _matches_criterion(self, criterion: str, content: str) -> bool:
|
|
106
|
-
"""
|
|
107
|
-
Simple text matching: check if criterion keywords appear in content.
|
|
108
|
-
|
|
109
|
-
This is a basic implementation for Phase 3. Future enhancements could
|
|
110
|
-
use more sophisticated matching (semantic, structured parsing, etc.).
|
|
111
|
-
"""
|
|
112
|
-
content_lower = content.lower()
|
|
113
|
-
|
|
114
|
-
# Extract key phrases from criterion (simple approach)
|
|
115
|
-
# Look for important keywords (skip common words)
|
|
116
|
-
common_words = {"the", "a", "an", "and", "or", "but", "in", "on", "at", "to", "for", "of", "with", "by"}
|
|
117
|
-
criterion_words = [
|
|
118
|
-
word.strip()
|
|
119
|
-
for word in criterion.split()
|
|
120
|
-
if word.strip().lower() not in common_words and len(word.strip()) > 2
|
|
121
|
-
]
|
|
122
|
-
|
|
123
|
-
# Check if at least 50% of key words appear in content
|
|
124
|
-
if not criterion_words:
|
|
125
|
-
# If no keywords, check if criterion phrase appears
|
|
126
|
-
return criterion in content_lower
|
|
127
|
-
|
|
128
|
-
matches = sum(1 for word in criterion_words if word in content_lower)
|
|
129
|
-
match_ratio = matches / len(criterion_words) if criterion_words else 0
|
|
130
|
-
|
|
131
|
-
# Require at least 50% keyword match or exact phrase match
|
|
132
|
-
return match_ratio >= 0.5 or criterion in content_lower
|
|
1
|
+
"""
|
|
2
|
+
Acceptance Criteria Verifier
|
|
3
|
+
|
|
4
|
+
Verifies acceptance criteria for story-level workflow steps.
|
|
5
|
+
Basic text matching implementation for Phase 3.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from .models import Artifact
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AcceptanceCriteriaVerifier:
|
|
15
|
+
"""Verify acceptance criteria for stories (basic text matching)."""
|
|
16
|
+
|
|
17
|
+
def verify(
|
|
18
|
+
self,
|
|
19
|
+
criteria: list[str],
|
|
20
|
+
artifacts: dict[str, Artifact],
|
|
21
|
+
code_files: list[Path] | None = None,
|
|
22
|
+
) -> dict[str, Any]:
|
|
23
|
+
"""
|
|
24
|
+
Verify acceptance criteria against artifacts and code files.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
criteria: List of acceptance criteria strings
|
|
28
|
+
artifacts: Dictionary of artifacts created by the step
|
|
29
|
+
code_files: Optional list of code file paths to check
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
Dictionary with verification results:
|
|
33
|
+
{
|
|
34
|
+
"all_passed": bool,
|
|
35
|
+
"results": [
|
|
36
|
+
{
|
|
37
|
+
"criterion": str,
|
|
38
|
+
"passed": bool,
|
|
39
|
+
"evidence": str | None
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
"""
|
|
44
|
+
results = []
|
|
45
|
+
all_passed = True
|
|
46
|
+
|
|
47
|
+
for criterion in criteria:
|
|
48
|
+
passed = False
|
|
49
|
+
evidence = None
|
|
50
|
+
|
|
51
|
+
# Simple text matching: check if criterion keywords appear in artifacts
|
|
52
|
+
criterion_lower = criterion.lower()
|
|
53
|
+
|
|
54
|
+
# Check artifacts
|
|
55
|
+
for artifact_name, artifact in artifacts.items():
|
|
56
|
+
artifact_content = self._get_artifact_content(artifact)
|
|
57
|
+
if artifact_content and self._matches_criterion(
|
|
58
|
+
criterion_lower, artifact_content
|
|
59
|
+
):
|
|
60
|
+
passed = True
|
|
61
|
+
evidence = f"Found in artifact: {artifact_name}"
|
|
62
|
+
break
|
|
63
|
+
|
|
64
|
+
# Check code files if provided
|
|
65
|
+
if not passed and code_files:
|
|
66
|
+
for code_file in code_files:
|
|
67
|
+
if code_file.exists():
|
|
68
|
+
try:
|
|
69
|
+
content = code_file.read_text(encoding="utf-8")
|
|
70
|
+
if self._matches_criterion(criterion_lower, content):
|
|
71
|
+
passed = True
|
|
72
|
+
evidence = f"Found in code file: {code_file}"
|
|
73
|
+
break
|
|
74
|
+
except Exception:
|
|
75
|
+
# Skip files that can't be read
|
|
76
|
+
continue
|
|
77
|
+
|
|
78
|
+
if not passed:
|
|
79
|
+
all_passed = False
|
|
80
|
+
|
|
81
|
+
results.append(
|
|
82
|
+
{
|
|
83
|
+
"criterion": criterion,
|
|
84
|
+
"passed": passed,
|
|
85
|
+
"evidence": evidence,
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
return {
|
|
90
|
+
"all_passed": all_passed,
|
|
91
|
+
"results": results,
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
def _get_artifact_content(self, artifact: Artifact) -> str | None:
|
|
95
|
+
"""Extract text content from artifact for matching."""
|
|
96
|
+
if artifact.path:
|
|
97
|
+
artifact_path = Path(artifact.path)
|
|
98
|
+
if artifact_path.exists():
|
|
99
|
+
try:
|
|
100
|
+
return artifact_path.read_text(encoding="utf-8")
|
|
101
|
+
except Exception:
|
|
102
|
+
return None
|
|
103
|
+
return None
|
|
104
|
+
|
|
105
|
+
def _matches_criterion(self, criterion: str, content: str) -> bool:
|
|
106
|
+
"""
|
|
107
|
+
Simple text matching: check if criterion keywords appear in content.
|
|
108
|
+
|
|
109
|
+
This is a basic implementation for Phase 3. Future enhancements could
|
|
110
|
+
use more sophisticated matching (semantic, structured parsing, etc.).
|
|
111
|
+
"""
|
|
112
|
+
content_lower = content.lower()
|
|
113
|
+
|
|
114
|
+
# Extract key phrases from criterion (simple approach)
|
|
115
|
+
# Look for important keywords (skip common words)
|
|
116
|
+
common_words = {"the", "a", "an", "and", "or", "but", "in", "on", "at", "to", "for", "of", "with", "by"}
|
|
117
|
+
criterion_words = [
|
|
118
|
+
word.strip()
|
|
119
|
+
for word in criterion.split()
|
|
120
|
+
if word.strip().lower() not in common_words and len(word.strip()) > 2
|
|
121
|
+
]
|
|
122
|
+
|
|
123
|
+
# Check if at least 50% of key words appear in content
|
|
124
|
+
if not criterion_words:
|
|
125
|
+
# If no keywords, check if criterion phrase appears
|
|
126
|
+
return criterion in content_lower
|
|
127
|
+
|
|
128
|
+
matches = sum(1 for word in criterion_words if word in content_lower)
|
|
129
|
+
match_ratio = matches / len(criterion_words) if criterion_words else 0
|
|
130
|
+
|
|
131
|
+
# Require at least 50% keyword match or exact phrase match
|
|
132
|
+
return match_ratio >= 0.5 or criterion in content_lower
|