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,276 +1,276 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Code Validator - Validates generated code for syntax errors before writing to files.
|
|
3
|
-
|
|
4
|
-
Prevents broken code from being written by validating syntax using language-specific
|
|
5
|
-
parsers (Python ast.parse, TypeScript compiler, etc.).
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
import ast
|
|
9
|
-
import re
|
|
10
|
-
from dataclasses import dataclass
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
from typing import Any
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@dataclass
|
|
16
|
-
class ValidationResult:
|
|
17
|
-
"""Result of code validation."""
|
|
18
|
-
|
|
19
|
-
is_valid: bool
|
|
20
|
-
"""Whether the code is valid (no syntax errors)."""
|
|
21
|
-
|
|
22
|
-
error_message: str | None = None
|
|
23
|
-
"""Error message if validation failed."""
|
|
24
|
-
|
|
25
|
-
error_line: int | None = None
|
|
26
|
-
"""Line number where error occurred (1-indexed)."""
|
|
27
|
-
|
|
28
|
-
error_column: int | None = None
|
|
29
|
-
"""Column number where error occurred (1-indexed)."""
|
|
30
|
-
|
|
31
|
-
error_type: str | None = None
|
|
32
|
-
"""Type of error (e.g., 'SyntaxError', 'IndentationError')."""
|
|
33
|
-
|
|
34
|
-
suggested_fix: str | None = None
|
|
35
|
-
"""Suggested fix for the error (if available)."""
|
|
36
|
-
|
|
37
|
-
language: str = "python"
|
|
38
|
-
"""Language of the validated code."""
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class CodeValidator:
|
|
42
|
-
"""
|
|
43
|
-
Validates generated code for syntax errors before writing to files.
|
|
44
|
-
|
|
45
|
-
Supports:
|
|
46
|
-
- Python (using ast.parse)
|
|
47
|
-
- TypeScript (using TypeScript compiler - if available)
|
|
48
|
-
- JavaScript (using esprima or similar - if available)
|
|
49
|
-
"""
|
|
50
|
-
|
|
51
|
-
def __init__(self):
|
|
52
|
-
"""Initialize code validator."""
|
|
53
|
-
pass
|
|
54
|
-
|
|
55
|
-
def validate(
|
|
56
|
-
self,
|
|
57
|
-
code: str,
|
|
58
|
-
language: str = "python",
|
|
59
|
-
file_path: str | Path | None = None,
|
|
60
|
-
) -> ValidationResult:
|
|
61
|
-
"""
|
|
62
|
-
Validate code for syntax errors.
|
|
63
|
-
|
|
64
|
-
Args:
|
|
65
|
-
code: Code string to validate
|
|
66
|
-
language: Language of the code (python, typescript, javascript)
|
|
67
|
-
file_path: Optional file path for better error messages
|
|
68
|
-
|
|
69
|
-
Returns:
|
|
70
|
-
ValidationResult with validation status and error details
|
|
71
|
-
|
|
72
|
-
Examples:
|
|
73
|
-
>>> validator = CodeValidator()
|
|
74
|
-
>>> result = validator.validate("def hello(): print('world')")
|
|
75
|
-
>>> result.is_valid
|
|
76
|
-
True
|
|
77
|
-
|
|
78
|
-
>>> result = validator.validate("def hello( print('world')")
|
|
79
|
-
>>> result.is_valid
|
|
80
|
-
False
|
|
81
|
-
>>> result.error_type
|
|
82
|
-
'SyntaxError'
|
|
83
|
-
"""
|
|
84
|
-
if not code or not code.strip():
|
|
85
|
-
return ValidationResult(
|
|
86
|
-
is_valid=False,
|
|
87
|
-
error_message="Code is empty",
|
|
88
|
-
error_type="EmptyCodeError",
|
|
89
|
-
language=language,
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
if language == "python":
|
|
93
|
-
return self.validate_python(code, file_path)
|
|
94
|
-
elif language == "typescript":
|
|
95
|
-
return self.validate_typescript(code, file_path)
|
|
96
|
-
elif language == "javascript":
|
|
97
|
-
return self.validate_javascript(code, file_path)
|
|
98
|
-
else:
|
|
99
|
-
# Unknown language - skip validation
|
|
100
|
-
return ValidationResult(
|
|
101
|
-
is_valid=True,
|
|
102
|
-
error_message=None,
|
|
103
|
-
language=language,
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
def validate_python(
|
|
107
|
-
self,
|
|
108
|
-
code: str,
|
|
109
|
-
file_path: str | Path | None = None,
|
|
110
|
-
) -> ValidationResult:
|
|
111
|
-
"""
|
|
112
|
-
Validate Python code syntax using ast.parse.
|
|
113
|
-
|
|
114
|
-
Args:
|
|
115
|
-
code: Python code string to validate
|
|
116
|
-
file_path: Optional file path for better error messages
|
|
117
|
-
|
|
118
|
-
Returns:
|
|
119
|
-
ValidationResult with validation status
|
|
120
|
-
|
|
121
|
-
Raises:
|
|
122
|
-
ValueError: If code is empty or None
|
|
123
|
-
"""
|
|
124
|
-
if not code or not code.strip():
|
|
125
|
-
return ValidationResult(
|
|
126
|
-
is_valid=False,
|
|
127
|
-
error_message="Python code is empty",
|
|
128
|
-
error_type="EmptyCodeError",
|
|
129
|
-
language="python",
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
try:
|
|
133
|
-
ast.parse(code, filename=str(file_path) if file_path else "<string>")
|
|
134
|
-
return ValidationResult(
|
|
135
|
-
is_valid=True,
|
|
136
|
-
error_message=None,
|
|
137
|
-
error_line=None,
|
|
138
|
-
error_column=None,
|
|
139
|
-
error_type=None,
|
|
140
|
-
suggested_fix=None,
|
|
141
|
-
language="python",
|
|
142
|
-
)
|
|
143
|
-
except SyntaxError as e:
|
|
144
|
-
return ValidationResult(
|
|
145
|
-
is_valid=False,
|
|
146
|
-
error_message=str(e.msg) if e.msg else str(e),
|
|
147
|
-
error_line=e.lineno,
|
|
148
|
-
error_column=e.offset,
|
|
149
|
-
error_type=type(e).__name__,
|
|
150
|
-
suggested_fix=self.suggest_fix(e, code),
|
|
151
|
-
language="python",
|
|
152
|
-
)
|
|
153
|
-
except Exception as e:
|
|
154
|
-
return ValidationResult(
|
|
155
|
-
is_valid=False,
|
|
156
|
-
error_message=f"Unexpected error during validation: {str(e)}",
|
|
157
|
-
error_type=type(e).__name__,
|
|
158
|
-
language="python",
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
def validate_typescript(
|
|
162
|
-
self,
|
|
163
|
-
code: str,
|
|
164
|
-
file_path: str | Path | None = None,
|
|
165
|
-
) -> ValidationResult:
|
|
166
|
-
"""
|
|
167
|
-
Validate TypeScript code syntax.
|
|
168
|
-
|
|
169
|
-
Args:
|
|
170
|
-
code: TypeScript code string to validate
|
|
171
|
-
file_path: Optional file path for better error messages
|
|
172
|
-
|
|
173
|
-
Returns:
|
|
174
|
-
ValidationResult with validation status
|
|
175
|
-
|
|
176
|
-
Note:
|
|
177
|
-
Currently returns is_valid=True (validation not implemented).
|
|
178
|
-
Future: Use TypeScript compiler (tsc) or parser library.
|
|
179
|
-
"""
|
|
180
|
-
# TODO: Implement TypeScript validation using tsc or parser
|
|
181
|
-
# For now, skip validation for TypeScript
|
|
182
|
-
return ValidationResult(
|
|
183
|
-
is_valid=True,
|
|
184
|
-
error_message=None,
|
|
185
|
-
language="typescript",
|
|
186
|
-
)
|
|
187
|
-
|
|
188
|
-
def validate_javascript(
|
|
189
|
-
self,
|
|
190
|
-
code: str,
|
|
191
|
-
file_path: str | Path | None = None,
|
|
192
|
-
) -> ValidationResult:
|
|
193
|
-
"""
|
|
194
|
-
Validate JavaScript code syntax.
|
|
195
|
-
|
|
196
|
-
Args:
|
|
197
|
-
code: JavaScript code string to validate
|
|
198
|
-
file_path: Optional file path for better error messages
|
|
199
|
-
|
|
200
|
-
Returns:
|
|
201
|
-
ValidationResult with validation status
|
|
202
|
-
|
|
203
|
-
Note:
|
|
204
|
-
Currently returns is_valid=True (validation not implemented).
|
|
205
|
-
Future: Use esprima or similar parser library.
|
|
206
|
-
"""
|
|
207
|
-
# TODO: Implement JavaScript validation using esprima or similar
|
|
208
|
-
# For now, skip validation for JavaScript
|
|
209
|
-
return ValidationResult(
|
|
210
|
-
is_valid=True,
|
|
211
|
-
error_message=None,
|
|
212
|
-
language="javascript",
|
|
213
|
-
)
|
|
214
|
-
|
|
215
|
-
def suggest_fix(
|
|
216
|
-
self,
|
|
217
|
-
error: SyntaxError | Exception,
|
|
218
|
-
code: str,
|
|
219
|
-
) -> str | None:
|
|
220
|
-
"""
|
|
221
|
-
Suggest a fix for a syntax error.
|
|
222
|
-
|
|
223
|
-
Args:
|
|
224
|
-
error: The syntax error exception
|
|
225
|
-
code: The code that caused the error
|
|
226
|
-
|
|
227
|
-
Returns:
|
|
228
|
-
Suggested fix string, or None if no suggestion available
|
|
229
|
-
|
|
230
|
-
Examples:
|
|
231
|
-
>>> validator = CodeValidator()
|
|
232
|
-
>>> error = SyntaxError("invalid syntax", ("<string>", 1, 5, "def hello("))
|
|
233
|
-
>>> fix = validator.suggest_fix(error, "def hello(")
|
|
234
|
-
>>> fix is not None
|
|
235
|
-
True
|
|
236
|
-
"""
|
|
237
|
-
if not isinstance(error, SyntaxError):
|
|
238
|
-
return None
|
|
239
|
-
|
|
240
|
-
error_msg = str(error.msg) if error.msg else ""
|
|
241
|
-
error_line = error.lineno
|
|
242
|
-
error_offset = error.offset
|
|
243
|
-
|
|
244
|
-
# Common fixes
|
|
245
|
-
suggestions = []
|
|
246
|
-
|
|
247
|
-
# Missing closing parenthesis
|
|
248
|
-
if "(" in error_msg or "unexpected EOF" in error_msg.lower():
|
|
249
|
-
if error_line and error_line <= len(code.split("\n")):
|
|
250
|
-
lines = code.split("\n")
|
|
251
|
-
line = lines[error_line - 1] if error_line > 0 else ""
|
|
252
|
-
if "(" in line and ")" not in line:
|
|
253
|
-
suggestions.append("Missing closing parenthesis ')'")
|
|
254
|
-
|
|
255
|
-
# Missing colon
|
|
256
|
-
if "expected ':'" in error_msg.lower() or "invalid syntax" in error_msg.lower():
|
|
257
|
-
if error_line and error_line <= len(code.split("\n")):
|
|
258
|
-
lines = code.split("\n")
|
|
259
|
-
line = lines[error_line - 1] if error_line > 0 else ""
|
|
260
|
-
if line.strip().endswith(")"):
|
|
261
|
-
suggestions.append("Missing colon ':' after function/class definition")
|
|
262
|
-
|
|
263
|
-
# Indentation error
|
|
264
|
-
if "indentation" in error_msg.lower():
|
|
265
|
-
suggestions.append("Check indentation (use 4 spaces, not tabs)")
|
|
266
|
-
|
|
267
|
-
# Invalid import syntax
|
|
268
|
-
if "import" in error_msg.lower() or "cannot import" in error_msg.lower():
|
|
269
|
-
suggestions.append(
|
|
270
|
-
"Check import statement syntax. Module paths with hyphens should use underscores."
|
|
271
|
-
)
|
|
272
|
-
|
|
273
|
-
if suggestions:
|
|
274
|
-
return " | ".join(suggestions)
|
|
275
|
-
|
|
276
|
-
return None
|
|
1
|
+
"""
|
|
2
|
+
Code Validator - Validates generated code for syntax errors before writing to files.
|
|
3
|
+
|
|
4
|
+
Prevents broken code from being written by validating syntax using language-specific
|
|
5
|
+
parsers (Python ast.parse, TypeScript compiler, etc.).
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import ast
|
|
9
|
+
import re
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class ValidationResult:
|
|
17
|
+
"""Result of code validation."""
|
|
18
|
+
|
|
19
|
+
is_valid: bool
|
|
20
|
+
"""Whether the code is valid (no syntax errors)."""
|
|
21
|
+
|
|
22
|
+
error_message: str | None = None
|
|
23
|
+
"""Error message if validation failed."""
|
|
24
|
+
|
|
25
|
+
error_line: int | None = None
|
|
26
|
+
"""Line number where error occurred (1-indexed)."""
|
|
27
|
+
|
|
28
|
+
error_column: int | None = None
|
|
29
|
+
"""Column number where error occurred (1-indexed)."""
|
|
30
|
+
|
|
31
|
+
error_type: str | None = None
|
|
32
|
+
"""Type of error (e.g., 'SyntaxError', 'IndentationError')."""
|
|
33
|
+
|
|
34
|
+
suggested_fix: str | None = None
|
|
35
|
+
"""Suggested fix for the error (if available)."""
|
|
36
|
+
|
|
37
|
+
language: str = "python"
|
|
38
|
+
"""Language of the validated code."""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class CodeValidator:
|
|
42
|
+
"""
|
|
43
|
+
Validates generated code for syntax errors before writing to files.
|
|
44
|
+
|
|
45
|
+
Supports:
|
|
46
|
+
- Python (using ast.parse)
|
|
47
|
+
- TypeScript (using TypeScript compiler - if available)
|
|
48
|
+
- JavaScript (using esprima or similar - if available)
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
def __init__(self):
|
|
52
|
+
"""Initialize code validator."""
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
def validate(
|
|
56
|
+
self,
|
|
57
|
+
code: str,
|
|
58
|
+
language: str = "python",
|
|
59
|
+
file_path: str | Path | None = None,
|
|
60
|
+
) -> ValidationResult:
|
|
61
|
+
"""
|
|
62
|
+
Validate code for syntax errors.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
code: Code string to validate
|
|
66
|
+
language: Language of the code (python, typescript, javascript)
|
|
67
|
+
file_path: Optional file path for better error messages
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
ValidationResult with validation status and error details
|
|
71
|
+
|
|
72
|
+
Examples:
|
|
73
|
+
>>> validator = CodeValidator()
|
|
74
|
+
>>> result = validator.validate("def hello(): print('world')")
|
|
75
|
+
>>> result.is_valid
|
|
76
|
+
True
|
|
77
|
+
|
|
78
|
+
>>> result = validator.validate("def hello( print('world')")
|
|
79
|
+
>>> result.is_valid
|
|
80
|
+
False
|
|
81
|
+
>>> result.error_type
|
|
82
|
+
'SyntaxError'
|
|
83
|
+
"""
|
|
84
|
+
if not code or not code.strip():
|
|
85
|
+
return ValidationResult(
|
|
86
|
+
is_valid=False,
|
|
87
|
+
error_message="Code is empty",
|
|
88
|
+
error_type="EmptyCodeError",
|
|
89
|
+
language=language,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
if language == "python":
|
|
93
|
+
return self.validate_python(code, file_path)
|
|
94
|
+
elif language == "typescript":
|
|
95
|
+
return self.validate_typescript(code, file_path)
|
|
96
|
+
elif language == "javascript":
|
|
97
|
+
return self.validate_javascript(code, file_path)
|
|
98
|
+
else:
|
|
99
|
+
# Unknown language - skip validation
|
|
100
|
+
return ValidationResult(
|
|
101
|
+
is_valid=True,
|
|
102
|
+
error_message=None,
|
|
103
|
+
language=language,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
def validate_python(
|
|
107
|
+
self,
|
|
108
|
+
code: str,
|
|
109
|
+
file_path: str | Path | None = None,
|
|
110
|
+
) -> ValidationResult:
|
|
111
|
+
"""
|
|
112
|
+
Validate Python code syntax using ast.parse.
|
|
113
|
+
|
|
114
|
+
Args:
|
|
115
|
+
code: Python code string to validate
|
|
116
|
+
file_path: Optional file path for better error messages
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
ValidationResult with validation status
|
|
120
|
+
|
|
121
|
+
Raises:
|
|
122
|
+
ValueError: If code is empty or None
|
|
123
|
+
"""
|
|
124
|
+
if not code or not code.strip():
|
|
125
|
+
return ValidationResult(
|
|
126
|
+
is_valid=False,
|
|
127
|
+
error_message="Python code is empty",
|
|
128
|
+
error_type="EmptyCodeError",
|
|
129
|
+
language="python",
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
try:
|
|
133
|
+
ast.parse(code, filename=str(file_path) if file_path else "<string>")
|
|
134
|
+
return ValidationResult(
|
|
135
|
+
is_valid=True,
|
|
136
|
+
error_message=None,
|
|
137
|
+
error_line=None,
|
|
138
|
+
error_column=None,
|
|
139
|
+
error_type=None,
|
|
140
|
+
suggested_fix=None,
|
|
141
|
+
language="python",
|
|
142
|
+
)
|
|
143
|
+
except SyntaxError as e:
|
|
144
|
+
return ValidationResult(
|
|
145
|
+
is_valid=False,
|
|
146
|
+
error_message=str(e.msg) if e.msg else str(e),
|
|
147
|
+
error_line=e.lineno,
|
|
148
|
+
error_column=e.offset,
|
|
149
|
+
error_type=type(e).__name__,
|
|
150
|
+
suggested_fix=self.suggest_fix(e, code),
|
|
151
|
+
language="python",
|
|
152
|
+
)
|
|
153
|
+
except Exception as e:
|
|
154
|
+
return ValidationResult(
|
|
155
|
+
is_valid=False,
|
|
156
|
+
error_message=f"Unexpected error during validation: {str(e)}",
|
|
157
|
+
error_type=type(e).__name__,
|
|
158
|
+
language="python",
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
def validate_typescript(
|
|
162
|
+
self,
|
|
163
|
+
code: str,
|
|
164
|
+
file_path: str | Path | None = None,
|
|
165
|
+
) -> ValidationResult:
|
|
166
|
+
"""
|
|
167
|
+
Validate TypeScript code syntax.
|
|
168
|
+
|
|
169
|
+
Args:
|
|
170
|
+
code: TypeScript code string to validate
|
|
171
|
+
file_path: Optional file path for better error messages
|
|
172
|
+
|
|
173
|
+
Returns:
|
|
174
|
+
ValidationResult with validation status
|
|
175
|
+
|
|
176
|
+
Note:
|
|
177
|
+
Currently returns is_valid=True (validation not implemented).
|
|
178
|
+
Future: Use TypeScript compiler (tsc) or parser library.
|
|
179
|
+
"""
|
|
180
|
+
# TODO: Implement TypeScript validation using tsc or parser
|
|
181
|
+
# For now, skip validation for TypeScript
|
|
182
|
+
return ValidationResult(
|
|
183
|
+
is_valid=True,
|
|
184
|
+
error_message=None,
|
|
185
|
+
language="typescript",
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
def validate_javascript(
|
|
189
|
+
self,
|
|
190
|
+
code: str,
|
|
191
|
+
file_path: str | Path | None = None,
|
|
192
|
+
) -> ValidationResult:
|
|
193
|
+
"""
|
|
194
|
+
Validate JavaScript code syntax.
|
|
195
|
+
|
|
196
|
+
Args:
|
|
197
|
+
code: JavaScript code string to validate
|
|
198
|
+
file_path: Optional file path for better error messages
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
ValidationResult with validation status
|
|
202
|
+
|
|
203
|
+
Note:
|
|
204
|
+
Currently returns is_valid=True (validation not implemented).
|
|
205
|
+
Future: Use esprima or similar parser library.
|
|
206
|
+
"""
|
|
207
|
+
# TODO: Implement JavaScript validation using esprima or similar
|
|
208
|
+
# For now, skip validation for JavaScript
|
|
209
|
+
return ValidationResult(
|
|
210
|
+
is_valid=True,
|
|
211
|
+
error_message=None,
|
|
212
|
+
language="javascript",
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
def suggest_fix(
|
|
216
|
+
self,
|
|
217
|
+
error: SyntaxError | Exception,
|
|
218
|
+
code: str,
|
|
219
|
+
) -> str | None:
|
|
220
|
+
"""
|
|
221
|
+
Suggest a fix for a syntax error.
|
|
222
|
+
|
|
223
|
+
Args:
|
|
224
|
+
error: The syntax error exception
|
|
225
|
+
code: The code that caused the error
|
|
226
|
+
|
|
227
|
+
Returns:
|
|
228
|
+
Suggested fix string, or None if no suggestion available
|
|
229
|
+
|
|
230
|
+
Examples:
|
|
231
|
+
>>> validator = CodeValidator()
|
|
232
|
+
>>> error = SyntaxError("invalid syntax", ("<string>", 1, 5, "def hello("))
|
|
233
|
+
>>> fix = validator.suggest_fix(error, "def hello(")
|
|
234
|
+
>>> fix is not None
|
|
235
|
+
True
|
|
236
|
+
"""
|
|
237
|
+
if not isinstance(error, SyntaxError):
|
|
238
|
+
return None
|
|
239
|
+
|
|
240
|
+
error_msg = str(error.msg) if error.msg else ""
|
|
241
|
+
error_line = error.lineno
|
|
242
|
+
error_offset = error.offset
|
|
243
|
+
|
|
244
|
+
# Common fixes
|
|
245
|
+
suggestions = []
|
|
246
|
+
|
|
247
|
+
# Missing closing parenthesis
|
|
248
|
+
if "(" in error_msg or "unexpected EOF" in error_msg.lower():
|
|
249
|
+
if error_line and error_line <= len(code.split("\n")):
|
|
250
|
+
lines = code.split("\n")
|
|
251
|
+
line = lines[error_line - 1] if error_line > 0 else ""
|
|
252
|
+
if "(" in line and ")" not in line:
|
|
253
|
+
suggestions.append("Missing closing parenthesis ')'")
|
|
254
|
+
|
|
255
|
+
# Missing colon
|
|
256
|
+
if "expected ':'" in error_msg.lower() or "invalid syntax" in error_msg.lower():
|
|
257
|
+
if error_line and error_line <= len(code.split("\n")):
|
|
258
|
+
lines = code.split("\n")
|
|
259
|
+
line = lines[error_line - 1] if error_line > 0 else ""
|
|
260
|
+
if line.strip().endswith(")"):
|
|
261
|
+
suggestions.append("Missing colon ':' after function/class definition")
|
|
262
|
+
|
|
263
|
+
# Indentation error
|
|
264
|
+
if "indentation" in error_msg.lower():
|
|
265
|
+
suggestions.append("Check indentation (use 4 spaces, not tabs)")
|
|
266
|
+
|
|
267
|
+
# Invalid import syntax
|
|
268
|
+
if "import" in error_msg.lower() or "cannot import" in error_msg.lower():
|
|
269
|
+
suggestions.append(
|
|
270
|
+
"Check import statement syntax. Module paths with hyphens should use underscores."
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
if suggestions:
|
|
274
|
+
return " | ".join(suggestions)
|
|
275
|
+
|
|
276
|
+
return None
|