tapps-agents 3.5.38__py3-none-any.whl → 3.5.40__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.
Files changed (75) hide show
  1. tapps_agents/__init__.py +2 -2
  2. tapps_agents/agents/cleanup/__init__.py +7 -0
  3. tapps_agents/agents/cleanup/agent.py +445 -0
  4. tapps_agents/agents/enhancer/agent.py +2 -2
  5. tapps_agents/agents/implementer/agent.py +35 -13
  6. tapps_agents/agents/reviewer/agent.py +43 -10
  7. tapps_agents/agents/reviewer/scoring.py +59 -68
  8. tapps_agents/agents/reviewer/tools/__init__.py +24 -0
  9. tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -0
  10. tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -0
  11. tapps_agents/beads/__init__.py +11 -0
  12. tapps_agents/beads/hydration.py +213 -0
  13. tapps_agents/beads/specs.py +206 -0
  14. tapps_agents/cli/commands/cleanup_agent.py +92 -0
  15. tapps_agents/cli/commands/health.py +19 -3
  16. tapps_agents/cli/commands/simple_mode.py +842 -676
  17. tapps_agents/cli/commands/task.py +219 -0
  18. tapps_agents/cli/commands/top_level.py +13 -0
  19. tapps_agents/cli/main.py +15 -2
  20. tapps_agents/cli/parsers/cleanup_agent.py +228 -0
  21. tapps_agents/cli/parsers/top_level.py +1978 -1881
  22. tapps_agents/core/config.py +43 -0
  23. tapps_agents/core/init_project.py +3012 -2896
  24. tapps_agents/epic/markdown_sync.py +105 -0
  25. tapps_agents/epic/orchestrator.py +1 -2
  26. tapps_agents/epic/parser.py +427 -423
  27. tapps_agents/experts/adaptive_domain_detector.py +0 -2
  28. tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +15 -15
  29. tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +19 -44
  30. tapps_agents/health/checks/outcomes.backup_20260204_064058.py +324 -0
  31. tapps_agents/health/checks/outcomes.backup_20260204_064256.py +324 -0
  32. tapps_agents/health/checks/outcomes.backup_20260204_064600.py +324 -0
  33. tapps_agents/health/checks/outcomes.py +134 -46
  34. tapps_agents/health/orchestrator.py +12 -4
  35. tapps_agents/hooks/__init__.py +33 -0
  36. tapps_agents/hooks/config.py +140 -0
  37. tapps_agents/hooks/events.py +135 -0
  38. tapps_agents/hooks/executor.py +128 -0
  39. tapps_agents/hooks/manager.py +143 -0
  40. tapps_agents/session/__init__.py +19 -0
  41. tapps_agents/session/manager.py +256 -0
  42. tapps_agents/simple_mode/code_snippet_handler.py +382 -0
  43. tapps_agents/simple_mode/intent_parser.py +29 -4
  44. tapps_agents/simple_mode/orchestrators/base.py +185 -59
  45. tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2667 -2642
  46. tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
  47. tapps_agents/simple_mode/workflow_suggester.py +37 -3
  48. tapps_agents/workflow/agent_handlers/implementer_handler.py +18 -3
  49. tapps_agents/workflow/cursor_executor.py +2196 -2118
  50. tapps_agents/workflow/direct_execution_fallback.py +16 -3
  51. tapps_agents/workflow/enforcer.py +36 -23
  52. tapps_agents/workflow/message_formatter.py +188 -0
  53. tapps_agents/workflow/parallel_executor.py +43 -4
  54. tapps_agents/workflow/parser.py +375 -357
  55. tapps_agents/workflow/rules_generator.py +337 -331
  56. tapps_agents/workflow/skill_invoker.py +9 -3
  57. {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.40.dist-info}/METADATA +9 -5
  58. {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.40.dist-info}/RECORD +62 -53
  59. tapps_agents/agents/analyst/SKILL.md +0 -85
  60. tapps_agents/agents/architect/SKILL.md +0 -80
  61. tapps_agents/agents/debugger/SKILL.md +0 -66
  62. tapps_agents/agents/designer/SKILL.md +0 -78
  63. tapps_agents/agents/documenter/SKILL.md +0 -95
  64. tapps_agents/agents/enhancer/SKILL.md +0 -189
  65. tapps_agents/agents/implementer/SKILL.md +0 -117
  66. tapps_agents/agents/improver/SKILL.md +0 -55
  67. tapps_agents/agents/ops/SKILL.md +0 -64
  68. tapps_agents/agents/orchestrator/SKILL.md +0 -238
  69. tapps_agents/agents/planner/story_template.md +0 -37
  70. tapps_agents/agents/reviewer/templates/quality-dashboard.html.j2 +0 -150
  71. tapps_agents/agents/tester/SKILL.md +0 -71
  72. {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.40.dist-info}/WHEEL +0 -0
  73. {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.40.dist-info}/entry_points.txt +0 -0
  74. {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.40.dist-info}/licenses/LICENSE +0 -0
  75. {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.40.dist-info}/top_level.txt +0 -0
@@ -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=0.85,
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