tapps-agents 3.5.39__py3-none-any.whl → 3.5.41__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/enhancer/agent.py +2728 -2728
- tapps_agents/agents/implementer/agent.py +35 -13
- tapps_agents/agents/reviewer/agent.py +43 -10
- tapps_agents/agents/reviewer/scoring.py +59 -68
- tapps_agents/agents/reviewer/tools/__init__.py +24 -0
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -0
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -0
- tapps_agents/beads/__init__.py +11 -0
- tapps_agents/beads/hydration.py +213 -0
- tapps_agents/beads/specs.py +206 -0
- tapps_agents/cli/commands/health.py +19 -3
- tapps_agents/cli/commands/simple_mode.py +842 -676
- tapps_agents/cli/commands/task.py +227 -0
- tapps_agents/cli/commands/top_level.py +13 -0
- tapps_agents/cli/main.py +658 -651
- tapps_agents/cli/parsers/top_level.py +1978 -1881
- tapps_agents/core/config.py +1622 -1622
- tapps_agents/core/init_project.py +3012 -2897
- tapps_agents/epic/markdown_sync.py +105 -0
- tapps_agents/epic/orchestrator.py +1 -2
- tapps_agents/epic/parser.py +427 -423
- tapps_agents/experts/adaptive_domain_detector.py +0 -2
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +15 -15
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +19 -44
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +324 -0
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +324 -0
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +324 -0
- tapps_agents/health/checks/outcomes.py +134 -46
- tapps_agents/health/orchestrator.py +12 -4
- tapps_agents/hooks/__init__.py +33 -0
- tapps_agents/hooks/config.py +140 -0
- tapps_agents/hooks/events.py +135 -0
- tapps_agents/hooks/executor.py +128 -0
- tapps_agents/hooks/manager.py +143 -0
- tapps_agents/session/__init__.py +19 -0
- tapps_agents/session/manager.py +256 -0
- tapps_agents/simple_mode/code_snippet_handler.py +382 -0
- tapps_agents/simple_mode/intent_parser.py +29 -4
- tapps_agents/simple_mode/orchestrators/base.py +185 -59
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2667 -2642
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +2 -2
- tapps_agents/simple_mode/workflow_suggester.py +37 -3
- tapps_agents/workflow/agent_handlers/implementer_handler.py +18 -3
- tapps_agents/workflow/cursor_executor.py +2337 -2118
- tapps_agents/workflow/direct_execution_fallback.py +16 -3
- tapps_agents/workflow/message_formatter.py +2 -1
- tapps_agents/workflow/models.py +38 -1
- tapps_agents/workflow/parallel_executor.py +43 -4
- tapps_agents/workflow/parser.py +375 -357
- tapps_agents/workflow/rules_generator.py +337 -337
- tapps_agents/workflow/skill_invoker.py +9 -3
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.41.dist-info}/METADATA +5 -1
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.41.dist-info}/RECORD +58 -54
- tapps_agents/agents/analyst/SKILL.md +0 -85
- tapps_agents/agents/architect/SKILL.md +0 -80
- tapps_agents/agents/debugger/SKILL.md +0 -66
- tapps_agents/agents/designer/SKILL.md +0 -78
- tapps_agents/agents/documenter/SKILL.md +0 -95
- tapps_agents/agents/enhancer/SKILL.md +0 -189
- tapps_agents/agents/implementer/SKILL.md +0 -117
- tapps_agents/agents/improver/SKILL.md +0 -55
- tapps_agents/agents/ops/SKILL.md +0 -64
- tapps_agents/agents/orchestrator/SKILL.md +0 -238
- tapps_agents/agents/planner/story_template.md +0 -37
- tapps_agents/agents/reviewer/templates/quality-dashboard.html.j2 +0 -150
- tapps_agents/agents/tester/SKILL.md +0 -71
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.41.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.41.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.41.dist-info}/licenses/LICENSE +0 -0
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.41.dist-info}/top_level.txt +0 -0
|
@@ -96,11 +96,11 @@ class FixOrchestrator(SimpleModeOrchestrator):
|
|
|
96
96
|
|
|
97
97
|
# Beads required: fail early if beads.required and bd unavailable
|
|
98
98
|
try:
|
|
99
|
-
from
|
|
99
|
+
from tapps_agents.beads import require_beads
|
|
100
100
|
|
|
101
101
|
require_beads(config, self.project_root)
|
|
102
102
|
except Exception as e:
|
|
103
|
-
from tapps_agents.
|
|
103
|
+
from tapps_agents.cli.feedback import get_feedback
|
|
104
104
|
|
|
105
105
|
get_feedback().error(str(e), context={"beads_required": True})
|
|
106
106
|
return {
|
|
@@ -463,16 +463,50 @@ class WorkflowSuggester:
|
|
|
463
463
|
if intent.type == IntentType.UNKNOWN:
|
|
464
464
|
return None
|
|
465
465
|
|
|
466
|
-
# Detect hybrid "review + fix" intent
|
|
466
|
+
# Detect hybrid "review + fix" intent with enhanced pattern matching
|
|
467
467
|
user_input_lower = user_input.lower()
|
|
468
|
+
|
|
469
|
+
# Pattern-based detection for hybrid requests
|
|
470
|
+
HYBRID_PATTERNS = [
|
|
471
|
+
r"review.*(?:and|then).*fix",
|
|
472
|
+
r"check.*(?:and|then).*(?:fix|repair|correct)",
|
|
473
|
+
r"compare.*(?:and|then).*fix",
|
|
474
|
+
r"make.*match.*(?:and|then)?.*fix",
|
|
475
|
+
r"(?:inspect|examine|analyze).*(?:and|then).*(?:fix|repair|correct)",
|
|
476
|
+
]
|
|
477
|
+
pattern_match = any(
|
|
478
|
+
re.search(pattern, user_input_lower)
|
|
479
|
+
for pattern in HYBRID_PATTERNS
|
|
480
|
+
)
|
|
481
|
+
|
|
482
|
+
# Boolean detection with expanded keywords
|
|
468
483
|
has_review = (
|
|
469
484
|
intent.type == IntentType.REVIEW
|
|
470
485
|
or "review" in user_input_lower
|
|
471
486
|
or intent.compare_to_codebase
|
|
487
|
+
or pattern_match # Add pattern match signal
|
|
488
|
+
)
|
|
489
|
+
has_fix = (
|
|
490
|
+
intent.type == IntentType.FIX
|
|
491
|
+
or "fix" in user_input_lower
|
|
492
|
+
or "repair" in user_input_lower # Expanded keyword
|
|
493
|
+
or "correct" in user_input_lower # Expanded keyword
|
|
472
494
|
)
|
|
473
|
-
has_fix = intent.type == IntentType.FIX or "fix" in user_input_lower
|
|
474
495
|
|
|
475
496
|
if has_review and has_fix:
|
|
497
|
+
# Dynamic confidence scoring (0.85-1.0 range)
|
|
498
|
+
base_confidence = 0.85
|
|
499
|
+
|
|
500
|
+
# Boost confidence based on signal strength
|
|
501
|
+
if pattern_match:
|
|
502
|
+
base_confidence += 0.05 # Boost for pattern match
|
|
503
|
+
if intent.compare_to_codebase:
|
|
504
|
+
base_confidence += 0.05 # Boost for "compare to codebase" flag
|
|
505
|
+
if intent.type == IntentType.REVIEW or intent.type == IntentType.FIX:
|
|
506
|
+
base_confidence += 0.05 # Boost for explicit intent type match
|
|
507
|
+
|
|
508
|
+
confidence = min(base_confidence, 1.0) # Cap at 1.0
|
|
509
|
+
|
|
476
510
|
return WorkflowSuggestion(
|
|
477
511
|
workflow_command=(
|
|
478
512
|
'@simple-mode *review <file> # Then: @simple-mode *fix <file> "issues from review"'
|
|
@@ -484,7 +518,7 @@ class WorkflowSuggester:
|
|
|
484
518
|
"Quality gates after fixes",
|
|
485
519
|
"Full traceability from review to fix",
|
|
486
520
|
],
|
|
487
|
-
confidence=
|
|
521
|
+
confidence=confidence,
|
|
488
522
|
reason="Review + fix hybrid request detected",
|
|
489
523
|
)
|
|
490
524
|
|
|
@@ -202,9 +202,24 @@ class ImplementerHandler(AgentExecutionHandler):
|
|
|
202
202
|
)
|
|
203
203
|
self.state.variables["implementer_result"] = result
|
|
204
204
|
self.state.variables["target_file"] = str(target_path)
|
|
205
|
-
|
|
205
|
+
|
|
206
206
|
created_artifacts: list[dict[str, Any]] = []
|
|
207
|
-
|
|
207
|
+
|
|
208
|
+
# Add the target file as an artifact (for both new and existing files)
|
|
209
|
+
# This ensures workflow steps can track what was created/modified
|
|
210
|
+
if target_path.exists():
|
|
211
|
+
created_artifacts.append(
|
|
212
|
+
{"name": str(target_path.relative_to(self.project_root)), "path": str(target_path)}
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# Also add "src/" artifact for workflow compatibility
|
|
216
|
+
# Many workflow presets expect "src/" as a generic source code artifact
|
|
217
|
+
# We use the parent directory of the target file as "src/"
|
|
218
|
+
src_dir = target_path.parent
|
|
219
|
+
created_artifacts.append(
|
|
220
|
+
{"name": "src/", "path": str(src_dir)}
|
|
221
|
+
)
|
|
222
|
+
|
|
208
223
|
# Create fixed-code/ artifact if requested by preset (only for existing files)
|
|
209
224
|
if file_exists and "fixed-code/" in (step.creates or []):
|
|
210
225
|
fixed_dir = self.project_root / "fixed-code"
|
|
@@ -215,6 +230,6 @@ class ImplementerHandler(AgentExecutionHandler):
|
|
|
215
230
|
created_artifacts.append(
|
|
216
231
|
{"name": "fixed-code/", "path": str(fixed_dir)}
|
|
217
232
|
)
|
|
218
|
-
|
|
233
|
+
|
|
219
234
|
return created_artifacts
|
|
220
235
|
|