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,201 +1,201 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Role template loader for user role templates.
|
|
3
|
-
|
|
4
|
-
Loads and applies user role templates to customize agent behavior based on user role.
|
|
5
|
-
Role templates provide sensible defaults that can be overridden by customizations.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
from __future__ import annotations
|
|
9
|
-
|
|
10
|
-
import logging
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
from typing import Any
|
|
13
|
-
|
|
14
|
-
import yaml
|
|
15
|
-
|
|
16
|
-
logger = logging.getLogger(__name__)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def load_role_template(
|
|
20
|
-
role_id: str | None, project_root: Path | None = None
|
|
21
|
-
) -> dict[str, Any] | None:
|
|
22
|
-
"""
|
|
23
|
-
Load user role template by role ID.
|
|
24
|
-
|
|
25
|
-
Args:
|
|
26
|
-
role_id: Role identifier (e.g., "senior-developer")
|
|
27
|
-
project_root: Project root directory (defaults to cwd)
|
|
28
|
-
|
|
29
|
-
Returns:
|
|
30
|
-
Parsed role template data or None if not found/invalid
|
|
31
|
-
"""
|
|
32
|
-
if role_id is None:
|
|
33
|
-
return None
|
|
34
|
-
|
|
35
|
-
if project_root is None:
|
|
36
|
-
project_root = Path.cwd()
|
|
37
|
-
|
|
38
|
-
# Try project-specific template first
|
|
39
|
-
project_template_path = (
|
|
40
|
-
project_root / "templates" / "user_roles" / f"{role_id}.yaml"
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
# Try framework template
|
|
44
|
-
framework_template_path = (
|
|
45
|
-
Path(__file__).parent.parent.parent / "templates" / "user_roles" / f"{role_id}.yaml"
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
# Try project template first, then framework template
|
|
49
|
-
template_path = None
|
|
50
|
-
if project_template_path.exists():
|
|
51
|
-
template_path = project_template_path
|
|
52
|
-
elif framework_template_path.exists():
|
|
53
|
-
template_path = framework_template_path
|
|
54
|
-
else:
|
|
55
|
-
logger.debug(f"Role template not found: {role_id}")
|
|
56
|
-
return None
|
|
57
|
-
|
|
58
|
-
try:
|
|
59
|
-
with open(template_path, encoding="utf-8") as f:
|
|
60
|
-
data = yaml.safe_load(f)
|
|
61
|
-
if data is None:
|
|
62
|
-
logger.warning(f"Role template {template_path} is empty")
|
|
63
|
-
return None
|
|
64
|
-
return data
|
|
65
|
-
except (OSError, yaml.YAMLError) as e:
|
|
66
|
-
logger.warning(f"Error loading role template {template_path}: {e}")
|
|
67
|
-
return None
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def get_role_from_config(
|
|
71
|
-
project_root: Path | None = None,
|
|
72
|
-
) -> str | None:
|
|
73
|
-
"""
|
|
74
|
-
Get user role ID from project configuration.
|
|
75
|
-
|
|
76
|
-
Args:
|
|
77
|
-
project_root: Project root directory (defaults to cwd)
|
|
78
|
-
|
|
79
|
-
Returns:
|
|
80
|
-
Role ID if found in config, None otherwise
|
|
81
|
-
"""
|
|
82
|
-
if project_root is None:
|
|
83
|
-
project_root = Path.cwd()
|
|
84
|
-
|
|
85
|
-
config_path = project_root / ".tapps-agents" / "config.yaml"
|
|
86
|
-
if not config_path.exists():
|
|
87
|
-
return None
|
|
88
|
-
|
|
89
|
-
try:
|
|
90
|
-
with open(config_path, encoding="utf-8") as f:
|
|
91
|
-
config = yaml.safe_load(f)
|
|
92
|
-
if config and isinstance(config, dict):
|
|
93
|
-
# Check for user_role in config
|
|
94
|
-
user_role = config.get("user_role")
|
|
95
|
-
if user_role and isinstance(user_role, str):
|
|
96
|
-
return user_role
|
|
97
|
-
except (OSError, yaml.YAMLError) as e:
|
|
98
|
-
logger.debug(f"Error reading role from config: {e}")
|
|
99
|
-
|
|
100
|
-
return None
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
def apply_role_template_to_agent_config(
|
|
104
|
-
base_config: dict[str, Any],
|
|
105
|
-
role_template: dict[str, Any] | None,
|
|
106
|
-
) -> dict[str, Any]:
|
|
107
|
-
"""
|
|
108
|
-
Apply role template configuration to agent base config.
|
|
109
|
-
|
|
110
|
-
This merges role template settings into the agent configuration.
|
|
111
|
-
Role templates are applied before customizations (customizations can override).
|
|
112
|
-
|
|
113
|
-
Args:
|
|
114
|
-
base_config: Base agent configuration
|
|
115
|
-
role_template: Role template data (may be None)
|
|
116
|
-
|
|
117
|
-
Returns:
|
|
118
|
-
Merged configuration with role template applied
|
|
119
|
-
"""
|
|
120
|
-
if role_template is None:
|
|
121
|
-
return base_config.copy()
|
|
122
|
-
|
|
123
|
-
merged = base_config.copy()
|
|
124
|
-
|
|
125
|
-
# Apply verbosity settings (if agent supports it)
|
|
126
|
-
if "verbosity" in role_template:
|
|
127
|
-
verbosity = role_template["verbosity"]
|
|
128
|
-
if "persona" not in merged:
|
|
129
|
-
merged["persona"] = {}
|
|
130
|
-
if "communication_style" not in merged["persona"]:
|
|
131
|
-
merged["persona"]["communication_style"] = {}
|
|
132
|
-
|
|
133
|
-
# Map verbosity level to communication style
|
|
134
|
-
level = verbosity.get("level", "balanced")
|
|
135
|
-
merged["persona"]["communication_style"]["verbosity"] = level
|
|
136
|
-
merged["persona"]["communication_style"]["explanations"] = verbosity.get("explanations", True)
|
|
137
|
-
merged["persona"]["communication_style"]["examples"] = verbosity.get("examples", True)
|
|
138
|
-
merged["persona"]["communication_style"]["learning_focus"] = verbosity.get("learning_focus", False)
|
|
139
|
-
|
|
140
|
-
# Apply workflow defaults (if agent supports it)
|
|
141
|
-
if "workflow_defaults" in role_template:
|
|
142
|
-
workflow_defaults = role_template["workflow_defaults"]
|
|
143
|
-
if "workflow" not in merged:
|
|
144
|
-
merged["workflow"] = {}
|
|
145
|
-
merged["workflow"].update(workflow_defaults)
|
|
146
|
-
|
|
147
|
-
# Apply expert priorities (merge into project context or expert config)
|
|
148
|
-
if "expert_priorities" in role_template:
|
|
149
|
-
expert_priorities = role_template["expert_priorities"]
|
|
150
|
-
if "project_context" not in merged:
|
|
151
|
-
merged["project_context"] = {}
|
|
152
|
-
if "expert_priorities" not in merged["project_context"]:
|
|
153
|
-
merged["project_context"]["expert_priorities"] = {}
|
|
154
|
-
# Merge expert priorities (role template values take precedence)
|
|
155
|
-
merged["project_context"]["expert_priorities"].update(expert_priorities)
|
|
156
|
-
|
|
157
|
-
# Apply documentation preferences
|
|
158
|
-
if "documentation_preferences" in role_template:
|
|
159
|
-
doc_prefs = role_template["documentation_preferences"]
|
|
160
|
-
if "documentation" not in merged:
|
|
161
|
-
merged["documentation"] = {}
|
|
162
|
-
merged["documentation"].update(doc_prefs)
|
|
163
|
-
|
|
164
|
-
# Apply review depth settings
|
|
165
|
-
if "review_depth" in role_template:
|
|
166
|
-
review_depth = role_template["review_depth"]
|
|
167
|
-
if "review" not in merged:
|
|
168
|
-
merged["review"] = {}
|
|
169
|
-
merged["review"].update(review_depth)
|
|
170
|
-
|
|
171
|
-
return merged
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
def load_and_apply_role_template(
|
|
175
|
-
agent_config: dict[str, Any],
|
|
176
|
-
role_id: str | None = None,
|
|
177
|
-
project_root: Path | None = None,
|
|
178
|
-
) -> dict[str, Any]:
|
|
179
|
-
"""
|
|
180
|
-
Load and apply role template to agent configuration.
|
|
181
|
-
|
|
182
|
-
This is the main entry point for applying role templates.
|
|
183
|
-
|
|
184
|
-
Args:
|
|
185
|
-
agent_config: Base agent configuration
|
|
186
|
-
role_id: Role identifier (if None, will try to read from config)
|
|
187
|
-
project_root: Project root directory (defaults to cwd)
|
|
188
|
-
|
|
189
|
-
Returns:
|
|
190
|
-
Agent configuration with role template applied
|
|
191
|
-
"""
|
|
192
|
-
# Get role ID if not provided
|
|
193
|
-
if role_id is None:
|
|
194
|
-
role_id = get_role_from_config(project_root)
|
|
195
|
-
|
|
196
|
-
# Load role template
|
|
197
|
-
role_template = load_role_template(role_id, project_root)
|
|
198
|
-
|
|
199
|
-
# Apply role template
|
|
200
|
-
return apply_role_template_to_agent_config(agent_config, role_template)
|
|
201
|
-
|
|
1
|
+
"""
|
|
2
|
+
Role template loader for user role templates.
|
|
3
|
+
|
|
4
|
+
Loads and applies user role templates to customize agent behavior based on user role.
|
|
5
|
+
Role templates provide sensible defaults that can be overridden by customizations.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import logging
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
import yaml
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def load_role_template(
|
|
20
|
+
role_id: str | None, project_root: Path | None = None
|
|
21
|
+
) -> dict[str, Any] | None:
|
|
22
|
+
"""
|
|
23
|
+
Load user role template by role ID.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
role_id: Role identifier (e.g., "senior-developer")
|
|
27
|
+
project_root: Project root directory (defaults to cwd)
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
Parsed role template data or None if not found/invalid
|
|
31
|
+
"""
|
|
32
|
+
if role_id is None:
|
|
33
|
+
return None
|
|
34
|
+
|
|
35
|
+
if project_root is None:
|
|
36
|
+
project_root = Path.cwd()
|
|
37
|
+
|
|
38
|
+
# Try project-specific template first
|
|
39
|
+
project_template_path = (
|
|
40
|
+
project_root / "templates" / "user_roles" / f"{role_id}.yaml"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# Try framework template
|
|
44
|
+
framework_template_path = (
|
|
45
|
+
Path(__file__).parent.parent.parent / "templates" / "user_roles" / f"{role_id}.yaml"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# Try project template first, then framework template
|
|
49
|
+
template_path = None
|
|
50
|
+
if project_template_path.exists():
|
|
51
|
+
template_path = project_template_path
|
|
52
|
+
elif framework_template_path.exists():
|
|
53
|
+
template_path = framework_template_path
|
|
54
|
+
else:
|
|
55
|
+
logger.debug(f"Role template not found: {role_id}")
|
|
56
|
+
return None
|
|
57
|
+
|
|
58
|
+
try:
|
|
59
|
+
with open(template_path, encoding="utf-8") as f:
|
|
60
|
+
data = yaml.safe_load(f)
|
|
61
|
+
if data is None:
|
|
62
|
+
logger.warning(f"Role template {template_path} is empty")
|
|
63
|
+
return None
|
|
64
|
+
return data
|
|
65
|
+
except (OSError, yaml.YAMLError) as e:
|
|
66
|
+
logger.warning(f"Error loading role template {template_path}: {e}")
|
|
67
|
+
return None
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def get_role_from_config(
|
|
71
|
+
project_root: Path | None = None,
|
|
72
|
+
) -> str | None:
|
|
73
|
+
"""
|
|
74
|
+
Get user role ID from project configuration.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
project_root: Project root directory (defaults to cwd)
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
Role ID if found in config, None otherwise
|
|
81
|
+
"""
|
|
82
|
+
if project_root is None:
|
|
83
|
+
project_root = Path.cwd()
|
|
84
|
+
|
|
85
|
+
config_path = project_root / ".tapps-agents" / "config.yaml"
|
|
86
|
+
if not config_path.exists():
|
|
87
|
+
return None
|
|
88
|
+
|
|
89
|
+
try:
|
|
90
|
+
with open(config_path, encoding="utf-8") as f:
|
|
91
|
+
config = yaml.safe_load(f)
|
|
92
|
+
if config and isinstance(config, dict):
|
|
93
|
+
# Check for user_role in config
|
|
94
|
+
user_role = config.get("user_role")
|
|
95
|
+
if user_role and isinstance(user_role, str):
|
|
96
|
+
return user_role
|
|
97
|
+
except (OSError, yaml.YAMLError) as e:
|
|
98
|
+
logger.debug(f"Error reading role from config: {e}")
|
|
99
|
+
|
|
100
|
+
return None
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def apply_role_template_to_agent_config(
|
|
104
|
+
base_config: dict[str, Any],
|
|
105
|
+
role_template: dict[str, Any] | None,
|
|
106
|
+
) -> dict[str, Any]:
|
|
107
|
+
"""
|
|
108
|
+
Apply role template configuration to agent base config.
|
|
109
|
+
|
|
110
|
+
This merges role template settings into the agent configuration.
|
|
111
|
+
Role templates are applied before customizations (customizations can override).
|
|
112
|
+
|
|
113
|
+
Args:
|
|
114
|
+
base_config: Base agent configuration
|
|
115
|
+
role_template: Role template data (may be None)
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
Merged configuration with role template applied
|
|
119
|
+
"""
|
|
120
|
+
if role_template is None:
|
|
121
|
+
return base_config.copy()
|
|
122
|
+
|
|
123
|
+
merged = base_config.copy()
|
|
124
|
+
|
|
125
|
+
# Apply verbosity settings (if agent supports it)
|
|
126
|
+
if "verbosity" in role_template:
|
|
127
|
+
verbosity = role_template["verbosity"]
|
|
128
|
+
if "persona" not in merged:
|
|
129
|
+
merged["persona"] = {}
|
|
130
|
+
if "communication_style" not in merged["persona"]:
|
|
131
|
+
merged["persona"]["communication_style"] = {}
|
|
132
|
+
|
|
133
|
+
# Map verbosity level to communication style
|
|
134
|
+
level = verbosity.get("level", "balanced")
|
|
135
|
+
merged["persona"]["communication_style"]["verbosity"] = level
|
|
136
|
+
merged["persona"]["communication_style"]["explanations"] = verbosity.get("explanations", True)
|
|
137
|
+
merged["persona"]["communication_style"]["examples"] = verbosity.get("examples", True)
|
|
138
|
+
merged["persona"]["communication_style"]["learning_focus"] = verbosity.get("learning_focus", False)
|
|
139
|
+
|
|
140
|
+
# Apply workflow defaults (if agent supports it)
|
|
141
|
+
if "workflow_defaults" in role_template:
|
|
142
|
+
workflow_defaults = role_template["workflow_defaults"]
|
|
143
|
+
if "workflow" not in merged:
|
|
144
|
+
merged["workflow"] = {}
|
|
145
|
+
merged["workflow"].update(workflow_defaults)
|
|
146
|
+
|
|
147
|
+
# Apply expert priorities (merge into project context or expert config)
|
|
148
|
+
if "expert_priorities" in role_template:
|
|
149
|
+
expert_priorities = role_template["expert_priorities"]
|
|
150
|
+
if "project_context" not in merged:
|
|
151
|
+
merged["project_context"] = {}
|
|
152
|
+
if "expert_priorities" not in merged["project_context"]:
|
|
153
|
+
merged["project_context"]["expert_priorities"] = {}
|
|
154
|
+
# Merge expert priorities (role template values take precedence)
|
|
155
|
+
merged["project_context"]["expert_priorities"].update(expert_priorities)
|
|
156
|
+
|
|
157
|
+
# Apply documentation preferences
|
|
158
|
+
if "documentation_preferences" in role_template:
|
|
159
|
+
doc_prefs = role_template["documentation_preferences"]
|
|
160
|
+
if "documentation" not in merged:
|
|
161
|
+
merged["documentation"] = {}
|
|
162
|
+
merged["documentation"].update(doc_prefs)
|
|
163
|
+
|
|
164
|
+
# Apply review depth settings
|
|
165
|
+
if "review_depth" in role_template:
|
|
166
|
+
review_depth = role_template["review_depth"]
|
|
167
|
+
if "review" not in merged:
|
|
168
|
+
merged["review"] = {}
|
|
169
|
+
merged["review"].update(review_depth)
|
|
170
|
+
|
|
171
|
+
return merged
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def load_and_apply_role_template(
|
|
175
|
+
agent_config: dict[str, Any],
|
|
176
|
+
role_id: str | None = None,
|
|
177
|
+
project_root: Path | None = None,
|
|
178
|
+
) -> dict[str, Any]:
|
|
179
|
+
"""
|
|
180
|
+
Load and apply role template to agent configuration.
|
|
181
|
+
|
|
182
|
+
This is the main entry point for applying role templates.
|
|
183
|
+
|
|
184
|
+
Args:
|
|
185
|
+
agent_config: Base agent configuration
|
|
186
|
+
role_id: Role identifier (if None, will try to read from config)
|
|
187
|
+
project_root: Project root directory (defaults to cwd)
|
|
188
|
+
|
|
189
|
+
Returns:
|
|
190
|
+
Agent configuration with role template applied
|
|
191
|
+
"""
|
|
192
|
+
# Get role ID if not provided
|
|
193
|
+
if role_id is None:
|
|
194
|
+
role_id = get_role_from_config(project_root)
|
|
195
|
+
|
|
196
|
+
# Load role template
|
|
197
|
+
role_template = load_role_template(role_id, project_root)
|
|
198
|
+
|
|
199
|
+
# Apply role template
|
|
200
|
+
return apply_role_template_to_agent_config(agent_config, role_template)
|
|
201
|
+
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Runtime mode detection for TappsCodingAgents.
|
|
3
|
-
|
|
4
|
-
Design goal:
|
|
5
|
-
- When invoked from Cursor Skills / Cursor Background Agents, Cursor is the only "brain".
|
|
6
|
-
The framework operates in tools-only mode.
|
|
7
|
-
- When invoked headlessly (CLI/CI/outside Cursor), the framework operates in headless mode.
|
|
8
|
-
|
|
9
|
-
This module provides a single source of truth for runtime mode detection.
|
|
10
|
-
"""
|
|
11
|
-
|
|
12
|
-
from __future__ import annotations
|
|
13
|
-
|
|
14
|
-
import os
|
|
15
|
-
from enum import Enum
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class RuntimeMode(str, Enum):
|
|
19
|
-
CURSOR = "cursor"
|
|
20
|
-
HEADLESS = "headless"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def detect_runtime_mode() -> RuntimeMode:
|
|
24
|
-
"""
|
|
25
|
-
Determine runtime mode.
|
|
26
|
-
|
|
27
|
-
Precedence:
|
|
28
|
-
1) Explicit override via TAPPS_AGENTS_MODE
|
|
29
|
-
- cursor/background -> RuntimeMode.CURSOR
|
|
30
|
-
- headless/cli -> RuntimeMode.HEADLESS
|
|
31
|
-
2) Best-effort auto-detection of Cursor runtime markers
|
|
32
|
-
3) Default to headless (safer for standalone CLI behavior)
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
raw = (os.getenv("TAPPS_AGENTS_MODE") or "").strip().lower()
|
|
36
|
-
if raw in ("cursor", "background"):
|
|
37
|
-
return RuntimeMode.CURSOR
|
|
38
|
-
if raw in ("headless", "cli"):
|
|
39
|
-
return RuntimeMode.HEADLESS
|
|
40
|
-
|
|
41
|
-
# Best-effort Cursor detection (non-exhaustive; safe if missing).
|
|
42
|
-
cursor_markers = (
|
|
43
|
-
"CURSOR",
|
|
44
|
-
"CURSOR_IDE",
|
|
45
|
-
"CURSOR_SESSION_ID",
|
|
46
|
-
"CURSOR_WORKSPACE_ROOT",
|
|
47
|
-
"CURSOR_TRACE_ID",
|
|
48
|
-
)
|
|
49
|
-
if any(os.getenv(k) for k in cursor_markers):
|
|
50
|
-
return RuntimeMode.CURSOR
|
|
51
|
-
|
|
52
|
-
return RuntimeMode.HEADLESS
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def is_cursor_mode() -> bool:
|
|
56
|
-
"""Convenience helper."""
|
|
57
|
-
|
|
58
|
-
return detect_runtime_mode() == RuntimeMode.CURSOR
|
|
59
|
-
|
|
60
|
-
|
|
1
|
+
"""
|
|
2
|
+
Runtime mode detection for TappsCodingAgents.
|
|
3
|
+
|
|
4
|
+
Design goal:
|
|
5
|
+
- When invoked from Cursor Skills / Cursor Background Agents, Cursor is the only "brain".
|
|
6
|
+
The framework operates in tools-only mode.
|
|
7
|
+
- When invoked headlessly (CLI/CI/outside Cursor), the framework operates in headless mode.
|
|
8
|
+
|
|
9
|
+
This module provides a single source of truth for runtime mode detection.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import os
|
|
15
|
+
from enum import Enum
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class RuntimeMode(str, Enum):
|
|
19
|
+
CURSOR = "cursor"
|
|
20
|
+
HEADLESS = "headless"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def detect_runtime_mode() -> RuntimeMode:
|
|
24
|
+
"""
|
|
25
|
+
Determine runtime mode.
|
|
26
|
+
|
|
27
|
+
Precedence:
|
|
28
|
+
1) Explicit override via TAPPS_AGENTS_MODE
|
|
29
|
+
- cursor/background -> RuntimeMode.CURSOR
|
|
30
|
+
- headless/cli -> RuntimeMode.HEADLESS
|
|
31
|
+
2) Best-effort auto-detection of Cursor runtime markers
|
|
32
|
+
3) Default to headless (safer for standalone CLI behavior)
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
raw = (os.getenv("TAPPS_AGENTS_MODE") or "").strip().lower()
|
|
36
|
+
if raw in ("cursor", "background"):
|
|
37
|
+
return RuntimeMode.CURSOR
|
|
38
|
+
if raw in ("headless", "cli"):
|
|
39
|
+
return RuntimeMode.HEADLESS
|
|
40
|
+
|
|
41
|
+
# Best-effort Cursor detection (non-exhaustive; safe if missing).
|
|
42
|
+
cursor_markers = (
|
|
43
|
+
"CURSOR",
|
|
44
|
+
"CURSOR_IDE",
|
|
45
|
+
"CURSOR_SESSION_ID",
|
|
46
|
+
"CURSOR_WORKSPACE_ROOT",
|
|
47
|
+
"CURSOR_TRACE_ID",
|
|
48
|
+
)
|
|
49
|
+
if any(os.getenv(k) for k in cursor_markers):
|
|
50
|
+
return RuntimeMode.CURSOR
|
|
51
|
+
|
|
52
|
+
return RuntimeMode.HEADLESS
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def is_cursor_mode() -> bool:
|
|
56
|
+
"""Convenience helper."""
|
|
57
|
+
|
|
58
|
+
return detect_runtime_mode() == RuntimeMode.CURSOR
|
|
59
|
+
|
|
60
|
+
|