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,160 +1,160 @@
|
|
|
1
|
-
"""
|
|
2
|
-
MQTT Validator - Validates MQTT client implementations
|
|
3
|
-
|
|
4
|
-
Phase 2.3: WebSocket & MQTT Protocol Support for HomeIQ
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
import re
|
|
8
|
-
import sys
|
|
9
|
-
from pathlib import Path
|
|
10
|
-
from typing import Any
|
|
11
|
-
|
|
12
|
-
# Use typing_extensions.TypedDict on Python < 3.12 for Pydantic compatibility
|
|
13
|
-
if sys.version_info >= (3, 12):
|
|
14
|
-
from typing import TypedDict
|
|
15
|
-
else:
|
|
16
|
-
from typing_extensions import TypedDict
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class MQTTReviewResult(TypedDict):
|
|
20
|
-
"""Type definition for MQTT review results."""
|
|
21
|
-
|
|
22
|
-
has_mqtt: bool
|
|
23
|
-
connection_issues: list[str]
|
|
24
|
-
topic_issues: list[str]
|
|
25
|
-
suggestions: list[str]
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class MQTTValidator:
|
|
29
|
-
"""
|
|
30
|
-
Validates MQTT client patterns and implementations.
|
|
31
|
-
|
|
32
|
-
Checks for:
|
|
33
|
-
- Connection management
|
|
34
|
-
- Topic structure
|
|
35
|
-
- QoS usage
|
|
36
|
-
- Error handling
|
|
37
|
-
- Reconnection logic
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
def __init__(self):
|
|
41
|
-
"""Initialize MQTT validator."""
|
|
42
|
-
self.mqtt_patterns = [
|
|
43
|
-
re.compile(r"paho\.mqtt", re.IGNORECASE),
|
|
44
|
-
re.compile(r"asyncio_mqtt", re.IGNORECASE),
|
|
45
|
-
re.compile(r"mqtt\.Client", re.IGNORECASE),
|
|
46
|
-
re.compile(r"MQTT", re.IGNORECASE),
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
def validate_connection_pattern(self, code: str) -> dict[str, Any]:
|
|
50
|
-
"""
|
|
51
|
-
Validate MQTT connection patterns.
|
|
52
|
-
|
|
53
|
-
Args:
|
|
54
|
-
code: Python code containing MQTT usage
|
|
55
|
-
|
|
56
|
-
Returns:
|
|
57
|
-
Dictionary with validation results:
|
|
58
|
-
{
|
|
59
|
-
"valid": bool,
|
|
60
|
-
"issues": list[str],
|
|
61
|
-
"suggestions": list[str]
|
|
62
|
-
}
|
|
63
|
-
"""
|
|
64
|
-
issues = []
|
|
65
|
-
suggestions = []
|
|
66
|
-
|
|
67
|
-
# Check if MQTT code exists
|
|
68
|
-
has_mqtt = any(pattern.search(code) for pattern in self.mqtt_patterns)
|
|
69
|
-
if not has_mqtt:
|
|
70
|
-
return {"valid": True, "issues": [], "suggestions": []}
|
|
71
|
-
|
|
72
|
-
# Check for connection callbacks
|
|
73
|
-
if "mqtt.Client" in code and "on_connect" not in code:
|
|
74
|
-
issues.append("Missing on_connect callback")
|
|
75
|
-
suggestions.append(
|
|
76
|
-
"Implement on_connect callback to handle connection events"
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
# Check for reconnection logic
|
|
80
|
-
if "mqtt" in code.lower() and "reconnect" not in code.lower():
|
|
81
|
-
issues.append("Missing reconnection logic")
|
|
82
|
-
suggestions.append(
|
|
83
|
-
"Implement automatic reconnection with reconnect_delay_set()"
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
# Check for error handling
|
|
87
|
-
if "mqtt" in code.lower() and "except" not in code:
|
|
88
|
-
issues.append("Missing error handling for MQTT operations")
|
|
89
|
-
suggestions.append("Add try/except blocks for MQTT errors")
|
|
90
|
-
|
|
91
|
-
# Check for QoS usage
|
|
92
|
-
if "publish" in code and "qos" not in code.lower():
|
|
93
|
-
suggestions.append("Specify QoS level for publish operations (0, 1, or 2)")
|
|
94
|
-
|
|
95
|
-
# Check for topic structure
|
|
96
|
-
if "publish" in code or "subscribe" in code:
|
|
97
|
-
# Check for wildcard usage in subscriptions
|
|
98
|
-
if "subscribe" in code and "#" in code:
|
|
99
|
-
suggestions.append(
|
|
100
|
-
"Be careful with multi-level wildcard (#) - can receive many messages"
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
# Check for topic naming
|
|
104
|
-
topics = re.findall(r'(?:publish|subscribe)\(["\']([^"\']+)["\']', code)
|
|
105
|
-
for topic in topics:
|
|
106
|
-
if len(topic.split("/")) > 5:
|
|
107
|
-
suggestions.append(
|
|
108
|
-
f"Topic '{topic}' is deeply nested - consider flattening"
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
# Check for retain usage
|
|
112
|
-
if "publish" in code and "retain" not in code.lower():
|
|
113
|
-
suggestions.append("Consider using retain=True for state messages")
|
|
114
|
-
|
|
115
|
-
# Check for will message
|
|
116
|
-
if "mqtt.Client" in code and "will_set" not in code:
|
|
117
|
-
suggestions.append(
|
|
118
|
-
"Consider setting will message for unexpected disconnects"
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
return {"valid": len(issues) == 0, "issues": issues, "suggestions": suggestions}
|
|
122
|
-
|
|
123
|
-
def review_file(self, file_path: Path, code: str) -> MQTTReviewResult:
|
|
124
|
-
"""
|
|
125
|
-
Review a file for MQTT patterns.
|
|
126
|
-
|
|
127
|
-
Args:
|
|
128
|
-
file_path: Path to the file
|
|
129
|
-
code: File content
|
|
130
|
-
|
|
131
|
-
Returns:
|
|
132
|
-
Dictionary with review results:
|
|
133
|
-
{
|
|
134
|
-
"has_mqtt": bool,
|
|
135
|
-
"connection_issues": list[str],
|
|
136
|
-
"topic_issues": list[str],
|
|
137
|
-
"suggestions": list[str]
|
|
138
|
-
}
|
|
139
|
-
"""
|
|
140
|
-
results: MQTTReviewResult = {
|
|
141
|
-
"has_mqtt": False,
|
|
142
|
-
"connection_issues": [],
|
|
143
|
-
"topic_issues": [],
|
|
144
|
-
"suggestions": [],
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
# Check if file contains MQTT code
|
|
148
|
-
has_mqtt = any(pattern.search(code) for pattern in self.mqtt_patterns)
|
|
149
|
-
|
|
150
|
-
if not has_mqtt:
|
|
151
|
-
return results
|
|
152
|
-
|
|
153
|
-
results["has_mqtt"] = True
|
|
154
|
-
|
|
155
|
-
# Validate connection patterns
|
|
156
|
-
validation = self.validate_connection_pattern(code)
|
|
157
|
-
results["connection_issues"].extend(validation.get("issues", []))
|
|
158
|
-
results["suggestions"].extend(validation.get("suggestions", []))
|
|
159
|
-
|
|
160
|
-
return results
|
|
1
|
+
"""
|
|
2
|
+
MQTT Validator - Validates MQTT client implementations
|
|
3
|
+
|
|
4
|
+
Phase 2.3: WebSocket & MQTT Protocol Support for HomeIQ
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import re
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
# Use typing_extensions.TypedDict on Python < 3.12 for Pydantic compatibility
|
|
13
|
+
if sys.version_info >= (3, 12):
|
|
14
|
+
from typing import TypedDict
|
|
15
|
+
else:
|
|
16
|
+
from typing_extensions import TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class MQTTReviewResult(TypedDict):
|
|
20
|
+
"""Type definition for MQTT review results."""
|
|
21
|
+
|
|
22
|
+
has_mqtt: bool
|
|
23
|
+
connection_issues: list[str]
|
|
24
|
+
topic_issues: list[str]
|
|
25
|
+
suggestions: list[str]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class MQTTValidator:
|
|
29
|
+
"""
|
|
30
|
+
Validates MQTT client patterns and implementations.
|
|
31
|
+
|
|
32
|
+
Checks for:
|
|
33
|
+
- Connection management
|
|
34
|
+
- Topic structure
|
|
35
|
+
- QoS usage
|
|
36
|
+
- Error handling
|
|
37
|
+
- Reconnection logic
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
def __init__(self):
|
|
41
|
+
"""Initialize MQTT validator."""
|
|
42
|
+
self.mqtt_patterns = [
|
|
43
|
+
re.compile(r"paho\.mqtt", re.IGNORECASE),
|
|
44
|
+
re.compile(r"asyncio_mqtt", re.IGNORECASE),
|
|
45
|
+
re.compile(r"mqtt\.Client", re.IGNORECASE),
|
|
46
|
+
re.compile(r"MQTT", re.IGNORECASE),
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
def validate_connection_pattern(self, code: str) -> dict[str, Any]:
|
|
50
|
+
"""
|
|
51
|
+
Validate MQTT connection patterns.
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
code: Python code containing MQTT usage
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
Dictionary with validation results:
|
|
58
|
+
{
|
|
59
|
+
"valid": bool,
|
|
60
|
+
"issues": list[str],
|
|
61
|
+
"suggestions": list[str]
|
|
62
|
+
}
|
|
63
|
+
"""
|
|
64
|
+
issues = []
|
|
65
|
+
suggestions = []
|
|
66
|
+
|
|
67
|
+
# Check if MQTT code exists
|
|
68
|
+
has_mqtt = any(pattern.search(code) for pattern in self.mqtt_patterns)
|
|
69
|
+
if not has_mqtt:
|
|
70
|
+
return {"valid": True, "issues": [], "suggestions": []}
|
|
71
|
+
|
|
72
|
+
# Check for connection callbacks
|
|
73
|
+
if "mqtt.Client" in code and "on_connect" not in code:
|
|
74
|
+
issues.append("Missing on_connect callback")
|
|
75
|
+
suggestions.append(
|
|
76
|
+
"Implement on_connect callback to handle connection events"
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
# Check for reconnection logic
|
|
80
|
+
if "mqtt" in code.lower() and "reconnect" not in code.lower():
|
|
81
|
+
issues.append("Missing reconnection logic")
|
|
82
|
+
suggestions.append(
|
|
83
|
+
"Implement automatic reconnection with reconnect_delay_set()"
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
# Check for error handling
|
|
87
|
+
if "mqtt" in code.lower() and "except" not in code:
|
|
88
|
+
issues.append("Missing error handling for MQTT operations")
|
|
89
|
+
suggestions.append("Add try/except blocks for MQTT errors")
|
|
90
|
+
|
|
91
|
+
# Check for QoS usage
|
|
92
|
+
if "publish" in code and "qos" not in code.lower():
|
|
93
|
+
suggestions.append("Specify QoS level for publish operations (0, 1, or 2)")
|
|
94
|
+
|
|
95
|
+
# Check for topic structure
|
|
96
|
+
if "publish" in code or "subscribe" in code:
|
|
97
|
+
# Check for wildcard usage in subscriptions
|
|
98
|
+
if "subscribe" in code and "#" in code:
|
|
99
|
+
suggestions.append(
|
|
100
|
+
"Be careful with multi-level wildcard (#) - can receive many messages"
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# Check for topic naming
|
|
104
|
+
topics = re.findall(r'(?:publish|subscribe)\(["\']([^"\']+)["\']', code)
|
|
105
|
+
for topic in topics:
|
|
106
|
+
if len(topic.split("/")) > 5:
|
|
107
|
+
suggestions.append(
|
|
108
|
+
f"Topic '{topic}' is deeply nested - consider flattening"
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
# Check for retain usage
|
|
112
|
+
if "publish" in code and "retain" not in code.lower():
|
|
113
|
+
suggestions.append("Consider using retain=True for state messages")
|
|
114
|
+
|
|
115
|
+
# Check for will message
|
|
116
|
+
if "mqtt.Client" in code and "will_set" not in code:
|
|
117
|
+
suggestions.append(
|
|
118
|
+
"Consider setting will message for unexpected disconnects"
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
return {"valid": len(issues) == 0, "issues": issues, "suggestions": suggestions}
|
|
122
|
+
|
|
123
|
+
def review_file(self, file_path: Path, code: str) -> MQTTReviewResult:
|
|
124
|
+
"""
|
|
125
|
+
Review a file for MQTT patterns.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
file_path: Path to the file
|
|
129
|
+
code: File content
|
|
130
|
+
|
|
131
|
+
Returns:
|
|
132
|
+
Dictionary with review results:
|
|
133
|
+
{
|
|
134
|
+
"has_mqtt": bool,
|
|
135
|
+
"connection_issues": list[str],
|
|
136
|
+
"topic_issues": list[str],
|
|
137
|
+
"suggestions": list[str]
|
|
138
|
+
}
|
|
139
|
+
"""
|
|
140
|
+
results: MQTTReviewResult = {
|
|
141
|
+
"has_mqtt": False,
|
|
142
|
+
"connection_issues": [],
|
|
143
|
+
"topic_issues": [],
|
|
144
|
+
"suggestions": [],
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
# Check if file contains MQTT code
|
|
148
|
+
has_mqtt = any(pattern.search(code) for pattern in self.mqtt_patterns)
|
|
149
|
+
|
|
150
|
+
if not has_mqtt:
|
|
151
|
+
return results
|
|
152
|
+
|
|
153
|
+
results["has_mqtt"] = True
|
|
154
|
+
|
|
155
|
+
# Validate connection patterns
|
|
156
|
+
validation = self.validate_connection_pattern(code)
|
|
157
|
+
results["connection_issues"].extend(validation.get("issues", []))
|
|
158
|
+
results["suggestions"].extend(validation.get("suggestions", []))
|
|
159
|
+
|
|
160
|
+
return results
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Review Output Enhancer - Enhances review output with library and pattern guidance.
|
|
3
|
-
|
|
4
|
-
Maintains backward compatibility by adding new sections without
|
|
5
|
-
modifying existing review output structure.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
from typing import Any
|
|
9
|
-
|
|
10
|
-
from .context7_enhancer import LibraryRecommendation, PatternGuidance
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class ReviewOutputEnhancer:
|
|
14
|
-
"""
|
|
15
|
-
Enhances review output with library recommendations and pattern guidance.
|
|
16
|
-
|
|
17
|
-
Maintains backward compatibility by adding new sections without
|
|
18
|
-
modifying existing review output structure.
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
def enhance_output(
|
|
22
|
-
self,
|
|
23
|
-
base_result: dict[str, Any],
|
|
24
|
-
library_recommendations: dict[str, LibraryRecommendation],
|
|
25
|
-
pattern_guidance: dict[str, PatternGuidance]
|
|
26
|
-
) -> dict[str, Any]:
|
|
27
|
-
"""
|
|
28
|
-
Enhance review output with library and pattern guidance.
|
|
29
|
-
|
|
30
|
-
Args:
|
|
31
|
-
base_result: Base review result dictionary
|
|
32
|
-
library_recommendations: Library recommendations from Context7
|
|
33
|
-
pattern_guidance: Pattern guidance from Context7
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
Enhanced review result dictionary
|
|
37
|
-
"""
|
|
38
|
-
# Create a copy to avoid modifying the original
|
|
39
|
-
enhanced_result = base_result.copy()
|
|
40
|
-
|
|
41
|
-
# Add library recommendations if available
|
|
42
|
-
if library_recommendations:
|
|
43
|
-
enhanced_result["library_recommendations"] = self._format_library_recommendations(
|
|
44
|
-
library_recommendations
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
# Add pattern guidance if available
|
|
48
|
-
if pattern_guidance:
|
|
49
|
-
enhanced_result["pattern_guidance"] = self._format_pattern_guidance(
|
|
50
|
-
pattern_guidance
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
return enhanced_result
|
|
54
|
-
|
|
55
|
-
def _format_library_recommendations(
|
|
56
|
-
self,
|
|
57
|
-
recommendations: dict[str, LibraryRecommendation]
|
|
58
|
-
) -> dict[str, Any]:
|
|
59
|
-
"""
|
|
60
|
-
Format library recommendations for output.
|
|
61
|
-
|
|
62
|
-
Args:
|
|
63
|
-
recommendations: Dictionary of LibraryRecommendation objects
|
|
64
|
-
|
|
65
|
-
Returns:
|
|
66
|
-
Formatted dictionary for output
|
|
67
|
-
"""
|
|
68
|
-
formatted = {}
|
|
69
|
-
|
|
70
|
-
for lib_name, recommendation in recommendations.items():
|
|
71
|
-
formatted[lib_name] = {
|
|
72
|
-
"best_practices": recommendation.best_practices,
|
|
73
|
-
"common_mistakes": recommendation.common_mistakes,
|
|
74
|
-
"usage_examples": recommendation.usage_examples,
|
|
75
|
-
"source": recommendation.source,
|
|
76
|
-
"cached": recommendation.cached
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return formatted
|
|
80
|
-
|
|
81
|
-
def _format_pattern_guidance(
|
|
82
|
-
self,
|
|
83
|
-
guidance: dict[str, PatternGuidance]
|
|
84
|
-
) -> dict[str, Any]:
|
|
85
|
-
"""
|
|
86
|
-
Format pattern guidance for output.
|
|
87
|
-
|
|
88
|
-
Args:
|
|
89
|
-
guidance: Dictionary of PatternGuidance objects
|
|
90
|
-
|
|
91
|
-
Returns:
|
|
92
|
-
Formatted dictionary for output
|
|
93
|
-
"""
|
|
94
|
-
formatted = {}
|
|
95
|
-
|
|
96
|
-
for pattern_name, pattern_guidance in guidance.items():
|
|
97
|
-
formatted[pattern_name] = {
|
|
98
|
-
"detected": True,
|
|
99
|
-
"recommendations": pattern_guidance.recommendations,
|
|
100
|
-
"best_practices": pattern_guidance.best_practices,
|
|
101
|
-
"source": pattern_guidance.source,
|
|
102
|
-
"cached": pattern_guidance.cached
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return formatted
|
|
1
|
+
"""
|
|
2
|
+
Review Output Enhancer - Enhances review output with library and pattern guidance.
|
|
3
|
+
|
|
4
|
+
Maintains backward compatibility by adding new sections without
|
|
5
|
+
modifying existing review output structure.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
from .context7_enhancer import LibraryRecommendation, PatternGuidance
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ReviewOutputEnhancer:
|
|
14
|
+
"""
|
|
15
|
+
Enhances review output with library recommendations and pattern guidance.
|
|
16
|
+
|
|
17
|
+
Maintains backward compatibility by adding new sections without
|
|
18
|
+
modifying existing review output structure.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def enhance_output(
|
|
22
|
+
self,
|
|
23
|
+
base_result: dict[str, Any],
|
|
24
|
+
library_recommendations: dict[str, LibraryRecommendation],
|
|
25
|
+
pattern_guidance: dict[str, PatternGuidance]
|
|
26
|
+
) -> dict[str, Any]:
|
|
27
|
+
"""
|
|
28
|
+
Enhance review output with library and pattern guidance.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
base_result: Base review result dictionary
|
|
32
|
+
library_recommendations: Library recommendations from Context7
|
|
33
|
+
pattern_guidance: Pattern guidance from Context7
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Enhanced review result dictionary
|
|
37
|
+
"""
|
|
38
|
+
# Create a copy to avoid modifying the original
|
|
39
|
+
enhanced_result = base_result.copy()
|
|
40
|
+
|
|
41
|
+
# Add library recommendations if available
|
|
42
|
+
if library_recommendations:
|
|
43
|
+
enhanced_result["library_recommendations"] = self._format_library_recommendations(
|
|
44
|
+
library_recommendations
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# Add pattern guidance if available
|
|
48
|
+
if pattern_guidance:
|
|
49
|
+
enhanced_result["pattern_guidance"] = self._format_pattern_guidance(
|
|
50
|
+
pattern_guidance
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
return enhanced_result
|
|
54
|
+
|
|
55
|
+
def _format_library_recommendations(
|
|
56
|
+
self,
|
|
57
|
+
recommendations: dict[str, LibraryRecommendation]
|
|
58
|
+
) -> dict[str, Any]:
|
|
59
|
+
"""
|
|
60
|
+
Format library recommendations for output.
|
|
61
|
+
|
|
62
|
+
Args:
|
|
63
|
+
recommendations: Dictionary of LibraryRecommendation objects
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Formatted dictionary for output
|
|
67
|
+
"""
|
|
68
|
+
formatted = {}
|
|
69
|
+
|
|
70
|
+
for lib_name, recommendation in recommendations.items():
|
|
71
|
+
formatted[lib_name] = {
|
|
72
|
+
"best_practices": recommendation.best_practices,
|
|
73
|
+
"common_mistakes": recommendation.common_mistakes,
|
|
74
|
+
"usage_examples": recommendation.usage_examples,
|
|
75
|
+
"source": recommendation.source,
|
|
76
|
+
"cached": recommendation.cached
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return formatted
|
|
80
|
+
|
|
81
|
+
def _format_pattern_guidance(
|
|
82
|
+
self,
|
|
83
|
+
guidance: dict[str, PatternGuidance]
|
|
84
|
+
) -> dict[str, Any]:
|
|
85
|
+
"""
|
|
86
|
+
Format pattern guidance for output.
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
guidance: Dictionary of PatternGuidance objects
|
|
90
|
+
|
|
91
|
+
Returns:
|
|
92
|
+
Formatted dictionary for output
|
|
93
|
+
"""
|
|
94
|
+
formatted = {}
|
|
95
|
+
|
|
96
|
+
for pattern_name, pattern_guidance in guidance.items():
|
|
97
|
+
formatted[pattern_name] = {
|
|
98
|
+
"detected": True,
|
|
99
|
+
"recommendations": pattern_guidance.recommendations,
|
|
100
|
+
"best_practices": pattern_guidance.best_practices,
|
|
101
|
+
"source": pattern_guidance.source,
|
|
102
|
+
"cached": pattern_guidance.cached
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return formatted
|