tapps-agents 3.5.38__py3-none-any.whl → 3.5.39__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/cleanup/__init__.py +7 -0
- tapps_agents/agents/cleanup/agent.py +445 -0
- tapps_agents/agents/enhancer/agent.py +2728 -2728
- tapps_agents/cli/commands/cleanup_agent.py +92 -0
- tapps_agents/cli/main.py +651 -645
- tapps_agents/cli/parsers/cleanup_agent.py +228 -0
- tapps_agents/core/config.py +1622 -1579
- tapps_agents/core/init_project.py +11 -10
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
- tapps_agents/workflow/enforcer.py +36 -23
- tapps_agents/workflow/message_formatter.py +187 -0
- tapps_agents/workflow/rules_generator.py +7 -1
- {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.39.dist-info}/METADATA +5 -5
- {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.39.dist-info}/RECORD +19 -14
- {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.39.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.39.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.39.dist-info}/licenses/LICENSE +0 -0
- {tapps_agents-3.5.38.dist-info → tapps_agents-3.5.39.dist-info}/top_level.txt +0 -0
|
@@ -22,6 +22,8 @@ from pathlib import Path
|
|
|
22
22
|
from typing import Literal, TypedDict
|
|
23
23
|
|
|
24
24
|
from tapps_agents.core.llm_behavior import EnforcementConfig
|
|
25
|
+
from tapps_agents.workflow.intent_detector import IntentDetector, WorkflowType
|
|
26
|
+
from tapps_agents.workflow.message_formatter import MessageConfig, MessageFormatter
|
|
25
27
|
|
|
26
28
|
logger = logging.getLogger(__name__)
|
|
27
29
|
|
|
@@ -140,6 +142,14 @@ class WorkflowEnforcer:
|
|
|
140
142
|
# Load config from file
|
|
141
143
|
self.config = self._load_config(config_path)
|
|
142
144
|
|
|
145
|
+
# Initialize intent detector and message formatter (ENH-001-S2, S3)
|
|
146
|
+
self._intent_detector = IntentDetector()
|
|
147
|
+
self._message_formatter = MessageFormatter(MessageConfig(
|
|
148
|
+
use_emoji=True,
|
|
149
|
+
show_benefits=self.config.suggest_workflows,
|
|
150
|
+
show_override=True,
|
|
151
|
+
))
|
|
152
|
+
|
|
143
153
|
logger.info(
|
|
144
154
|
f"WorkflowEnforcer initialized with mode={self.config.mode}, "
|
|
145
155
|
f"confidence_threshold={self.config.confidence_threshold}"
|
|
@@ -322,55 +332,58 @@ class WorkflowEnforcer:
|
|
|
322
332
|
- allow: Empty message
|
|
323
333
|
|
|
324
334
|
Note:
|
|
325
|
-
|
|
326
|
-
|
|
335
|
+
Uses MessageFormatter (ENH-001-S3) for rich, context-aware messages.
|
|
336
|
+
Uses IntentDetector (ENH-001-S2) for workflow detection and confidence.
|
|
327
337
|
"""
|
|
328
338
|
# Determine should_block flag
|
|
329
339
|
should_block = action == "block" and self.config.block_direct_edits
|
|
330
340
|
|
|
331
|
-
#
|
|
341
|
+
# Detect intent and get confidence (ENH-001-S2 integration)
|
|
342
|
+
detection_result = self._intent_detector.detect_workflow(
|
|
343
|
+
user_intent=user_intent,
|
|
344
|
+
file_path=file_path if file_path.exists() else None,
|
|
345
|
+
)
|
|
346
|
+
workflow = detection_result.workflow_type
|
|
347
|
+
confidence = detection_result.confidence
|
|
348
|
+
|
|
349
|
+
# Generate message using MessageFormatter (ENH-001-S3 integration)
|
|
332
350
|
if action == "block":
|
|
333
351
|
if self.config.suggest_workflows:
|
|
334
|
-
message = (
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
f" • Comprehensive documentation\n"
|
|
340
|
-
f" • Early bug detection\n\n"
|
|
341
|
-
f"Suggested workflow:\n"
|
|
342
|
-
f" @simple-mode *build \"{user_intent or 'Implement feature'}\"\n\n"
|
|
343
|
-
f"To bypass enforcement, use: --skip-enforcement flag"
|
|
352
|
+
message = self._message_formatter.format_blocking_message(
|
|
353
|
+
workflow=workflow,
|
|
354
|
+
user_intent=user_intent,
|
|
355
|
+
file_path=file_path,
|
|
356
|
+
confidence=confidence,
|
|
344
357
|
)
|
|
345
358
|
else:
|
|
346
359
|
message = (
|
|
347
|
-
f"
|
|
360
|
+
f"Direct file edit blocked: {file_path}\n"
|
|
348
361
|
f"Use --skip-enforcement flag to bypass."
|
|
349
362
|
)
|
|
350
363
|
elif action == "warn":
|
|
351
364
|
if self.config.suggest_workflows:
|
|
352
|
-
message = (
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
365
|
+
message = self._message_formatter.format_warning_message(
|
|
366
|
+
workflow=workflow,
|
|
367
|
+
user_intent=user_intent,
|
|
368
|
+
confidence=confidence,
|
|
356
369
|
)
|
|
357
370
|
else:
|
|
358
|
-
message = f"
|
|
371
|
+
message = f"Consider using a workflow for: {file_path}"
|
|
359
372
|
else: # allow
|
|
360
|
-
message =
|
|
373
|
+
message = self._message_formatter.format_allow_message()
|
|
361
374
|
|
|
362
|
-
# Create decision
|
|
375
|
+
# Create decision with actual confidence from intent detection
|
|
363
376
|
decision: EnforcementDecision = {
|
|
364
377
|
"action": action,
|
|
365
378
|
"message": message,
|
|
366
379
|
"should_block": should_block,
|
|
367
|
-
"confidence":
|
|
380
|
+
"confidence": confidence,
|
|
368
381
|
}
|
|
369
382
|
|
|
370
383
|
# Log decision
|
|
371
384
|
logger.debug(
|
|
372
385
|
f"Enforcement decision: action={action}, should_block={should_block}, "
|
|
373
|
-
f"file_path={file_path},
|
|
386
|
+
f"file_path={file_path}, workflow={workflow.value}, confidence={confidence:.1f}%"
|
|
374
387
|
)
|
|
375
388
|
|
|
376
389
|
return decision
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Message Formatter - ENH-001-S3
|
|
3
|
+
|
|
4
|
+
Formats enforcement messages for the Workflow Enforcement System.
|
|
5
|
+
Provides rich, context-aware messages for blocking and warning modes
|
|
6
|
+
with support for CLI and IDE output formats.
|
|
7
|
+
|
|
8
|
+
Design Principles:
|
|
9
|
+
- Separation of Concerns: Message formatting separate from enforcement logic
|
|
10
|
+
- Configurable: Emoji support, output format selection
|
|
11
|
+
- Context-Aware: Messages tailored to detected workflow type
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import logging
|
|
17
|
+
from dataclasses import dataclass
|
|
18
|
+
from enum import Enum
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
from typing import Literal
|
|
21
|
+
|
|
22
|
+
from tapps_agents.workflow.intent_detector import WorkflowType
|
|
23
|
+
|
|
24
|
+
logger = logging.getLogger(__name__)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class OutputFormat(str, Enum):
|
|
28
|
+
"""Output format for messages."""
|
|
29
|
+
|
|
30
|
+
CLI = "cli"
|
|
31
|
+
IDE = "ide"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@dataclass
|
|
35
|
+
class MessageConfig:
|
|
36
|
+
"""Configuration for message formatting."""
|
|
37
|
+
|
|
38
|
+
use_emoji: bool = True
|
|
39
|
+
output_format: OutputFormat = OutputFormat.CLI
|
|
40
|
+
show_benefits: bool = True
|
|
41
|
+
show_override: bool = True
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# Workflow-specific benefits
|
|
45
|
+
WORKFLOW_BENEFITS: dict[WorkflowType, list[str]] = {
|
|
46
|
+
WorkflowType.BUILD: [
|
|
47
|
+
"Automatic testing (80%+ coverage)",
|
|
48
|
+
"Quality gates (75+ score required)",
|
|
49
|
+
"Comprehensive documentation",
|
|
50
|
+
"Early bug detection",
|
|
51
|
+
],
|
|
52
|
+
WorkflowType.FIX: [
|
|
53
|
+
"Root cause analysis",
|
|
54
|
+
"Regression test generation",
|
|
55
|
+
"Fix verification",
|
|
56
|
+
"Related issue detection",
|
|
57
|
+
],
|
|
58
|
+
WorkflowType.REFACTOR: [
|
|
59
|
+
"Behavior preservation tests",
|
|
60
|
+
"Code quality improvement",
|
|
61
|
+
"Technical debt reduction",
|
|
62
|
+
"Safe incremental changes",
|
|
63
|
+
],
|
|
64
|
+
WorkflowType.REVIEW: [
|
|
65
|
+
"Security vulnerability detection",
|
|
66
|
+
"Code quality scoring",
|
|
67
|
+
"Best practice suggestions",
|
|
68
|
+
"Maintainability analysis",
|
|
69
|
+
],
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class MessageFormatter:
|
|
74
|
+
"""
|
|
75
|
+
Formats enforcement messages for workflow enforcement system.
|
|
76
|
+
|
|
77
|
+
Provides rich, context-aware messages for blocking and warning modes
|
|
78
|
+
with configurable emoji support and output format selection.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
def __init__(self, config: MessageConfig | None = None) -> None:
|
|
82
|
+
"""Initialize formatter with optional configuration."""
|
|
83
|
+
self.config = config or MessageConfig()
|
|
84
|
+
|
|
85
|
+
def format_blocking_message(
|
|
86
|
+
self,
|
|
87
|
+
workflow: WorkflowType,
|
|
88
|
+
user_intent: str,
|
|
89
|
+
file_path: Path,
|
|
90
|
+
confidence: float,
|
|
91
|
+
) -> str:
|
|
92
|
+
"""
|
|
93
|
+
Format blocking mode message with benefits and override instructions.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
workflow: Detected workflow type
|
|
97
|
+
user_intent: User's intent description
|
|
98
|
+
file_path: Path to file being edited
|
|
99
|
+
confidence: Detection confidence (0-100)
|
|
100
|
+
|
|
101
|
+
Returns:
|
|
102
|
+
Formatted blocking message
|
|
103
|
+
"""
|
|
104
|
+
emoji = self._get_emoji("block") if self.config.use_emoji else ""
|
|
105
|
+
intent_display = user_intent or "Implement feature"
|
|
106
|
+
|
|
107
|
+
lines = [
|
|
108
|
+
f"{emoji}Direct file edit blocked: {file_path}".strip(),
|
|
109
|
+
"",
|
|
110
|
+
f"Detected intent: {workflow.value} (confidence: {confidence:.0f}%)",
|
|
111
|
+
"",
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
if self.config.show_benefits:
|
|
115
|
+
lines.append("TappsCodingAgents workflows provide:")
|
|
116
|
+
for benefit in self._get_workflow_benefits(workflow):
|
|
117
|
+
bullet = " * " if self.config.output_format == OutputFormat.IDE else " - "
|
|
118
|
+
lines.append(f"{bullet}{benefit}")
|
|
119
|
+
lines.append("")
|
|
120
|
+
|
|
121
|
+
lines.append("Suggested workflow:")
|
|
122
|
+
lines.append(f' @simple-mode {workflow.value} "{intent_display}"')
|
|
123
|
+
lines.append("")
|
|
124
|
+
|
|
125
|
+
if self.config.show_override:
|
|
126
|
+
lines.extend(self._get_override_instructions())
|
|
127
|
+
|
|
128
|
+
return "\n".join(lines)
|
|
129
|
+
|
|
130
|
+
def format_warning_message(
|
|
131
|
+
self,
|
|
132
|
+
workflow: WorkflowType,
|
|
133
|
+
user_intent: str,
|
|
134
|
+
confidence: float,
|
|
135
|
+
) -> str:
|
|
136
|
+
"""
|
|
137
|
+
Format warning mode message (lighter suggestion).
|
|
138
|
+
|
|
139
|
+
Args:
|
|
140
|
+
workflow: Detected workflow type
|
|
141
|
+
user_intent: User's intent description
|
|
142
|
+
confidence: Detection confidence (0-100)
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
Formatted warning message
|
|
146
|
+
"""
|
|
147
|
+
emoji = self._get_emoji("warn") if self.config.use_emoji else ""
|
|
148
|
+
intent_display = user_intent or "Implement feature"
|
|
149
|
+
|
|
150
|
+
lines = [
|
|
151
|
+
f"{emoji}Consider using a workflow (confidence: {confidence:.0f}%)".strip(),
|
|
152
|
+
f'Suggested: @simple-mode {workflow.value} "{intent_display}"',
|
|
153
|
+
"(Proceeding with direct edit...)",
|
|
154
|
+
]
|
|
155
|
+
|
|
156
|
+
return "\n".join(lines)
|
|
157
|
+
|
|
158
|
+
def format_allow_message(self) -> str:
|
|
159
|
+
"""Format allow message (empty for silent mode)."""
|
|
160
|
+
return ""
|
|
161
|
+
|
|
162
|
+
def _get_emoji(self, action: Literal["block", "warn", "allow"]) -> str:
|
|
163
|
+
"""Get emoji for action type."""
|
|
164
|
+
emojis = {
|
|
165
|
+
"block": "\u26a0\ufe0f ", # Warning sign
|
|
166
|
+
"warn": "\U0001f4a1 ", # Light bulb
|
|
167
|
+
"allow": "\u2705 ", # Check mark
|
|
168
|
+
}
|
|
169
|
+
return emojis.get(action, "")
|
|
170
|
+
|
|
171
|
+
def _get_workflow_benefits(self, workflow: WorkflowType) -> list[str]:
|
|
172
|
+
"""Get benefits list for workflow type."""
|
|
173
|
+
return WORKFLOW_BENEFITS.get(workflow, WORKFLOW_BENEFITS[WorkflowType.BUILD])
|
|
174
|
+
|
|
175
|
+
def _get_override_instructions(self) -> list[str]:
|
|
176
|
+
"""Get override instructions based on output format."""
|
|
177
|
+
if self.config.output_format == OutputFormat.IDE:
|
|
178
|
+
return [
|
|
179
|
+
"To bypass enforcement:",
|
|
180
|
+
" * Use --skip-enforcement flag",
|
|
181
|
+
" * Or set enforcement.mode: silent in config",
|
|
182
|
+
]
|
|
183
|
+
return [
|
|
184
|
+
"To bypass enforcement:",
|
|
185
|
+
" - Use --skip-enforcement flag",
|
|
186
|
+
" - Or set enforcement.mode: silent in .tapps-agents/config.yaml",
|
|
187
|
+
]
|
|
@@ -313,7 +313,13 @@ class CursorRulesGenerator:
|
|
|
313
313
|
try:
|
|
314
314
|
content = self.generate()
|
|
315
315
|
except ValueError as e:
|
|
316
|
-
|
|
316
|
+
msg = str(e)
|
|
317
|
+
if "No workflow YAML files found" in msg:
|
|
318
|
+
logger.warning(
|
|
319
|
+
"Could not generate workflow-presets.mdc (no YAML found). %s", msg
|
|
320
|
+
)
|
|
321
|
+
else:
|
|
322
|
+
logger.error(f"Failed to generate rules: {e}")
|
|
317
323
|
raise
|
|
318
324
|
|
|
319
325
|
if not content or not content.strip():
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tapps-agents
|
|
3
|
-
Version: 3.5.
|
|
3
|
+
Version: 3.5.39
|
|
4
4
|
Summary: A specification framework for defining, configuring, and orchestrating coding agents
|
|
5
5
|
Author: Tapps
|
|
6
6
|
Maintainer: Tapps
|
|
@@ -57,7 +57,7 @@ Dynamic: license-file
|
|
|
57
57
|
[](https://www.python.org/downloads/)
|
|
58
58
|
[](LICENSE)
|
|
59
59
|
[](README.md)
|
|
60
|
-
[](CHANGELOG.md)
|
|
61
61
|
|
|
62
62
|
**A specification framework for defining, configuring, and orchestrating coding agents.**
|
|
63
63
|
|
|
@@ -118,7 +118,7 @@ If you're using **Cursor IDE**, get started quickly:
|
|
|
118
118
|
# Install from PyPI (clean install, framework code only)
|
|
119
119
|
pip install tapps-agents
|
|
120
120
|
# or specific version:
|
|
121
|
-
pip install tapps-agents==3.5.
|
|
121
|
+
pip install tapps-agents==3.5.39
|
|
122
122
|
```
|
|
123
123
|
**Windows:** If `tapps-agents` is not found after install (user Scripts often not on PATH), use a project venv or run `python -m tapps_agents.cli` instead. See [Troubleshooting CLI installation](docs/TROUBLESHOOTING_CLI_INSTALLATION.md).
|
|
124
124
|
|
|
@@ -280,7 +280,7 @@ See [Demo Plan](docs/DEMO_PLAN.md) for complete demo scenarios and instructions.
|
|
|
280
280
|
|
|
281
281
|
## Current Status
|
|
282
282
|
|
|
283
|
-
**Version** 3.5.
|
|
283
|
+
**Version** 3.5.39 · **Production ready** · All 7 Cursor AI integration phases complete · YAML-first architecture (Epics 6–10) · 14 workflow agents + Simple Mode · 16 built-in experts.
|
|
284
284
|
|
|
285
285
|
📋 [Changelog](CHANGELOG.md) · [Cursor AI Integration Plan](docs/CURSOR_AI_INTEGRATION_PLAN_2025.md) · [YAML Workflow Design](docs/YAML_WORKFLOW_ARCHITECTURE_DESIGN.md)
|
|
286
286
|
|
|
@@ -626,7 +626,7 @@ See [Release Guide](docs/operations/RELEASE_GUIDE.md) for complete release proce
|
|
|
626
626
|
## Status
|
|
627
627
|
|
|
628
628
|
**Phase**: ✅ **All 7 Phases Complete - Cursor AI Integration Plan 2025**
|
|
629
|
-
**Version**: 3.5.
|
|
629
|
+
**Version**: 3.5.39
|
|
630
630
|
**Last Updated**: January 2026
|
|
631
631
|
**Cursor AI Integration**: ✅ Complete (Phases 1-7)
|
|
632
632
|
**Dependencies**: ✅ Updated to latest 2025 stable versions (pytest 9.x, ruff 0.14.8, mypy 1.19.0, etc.)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
tapps_agents/__init__.py,sha256=
|
|
1
|
+
tapps_agents/__init__.py,sha256=yWcjkPNc5-XPh4DJLLTqZCPIBESe5hMk_o1X3bwJHJQ,1180
|
|
2
2
|
tapps_agents/agents/__init__.py,sha256=w0Aj0bEdmIoPY1OcVTK0KFRSkYeAk-66CM2zmGTLjW0,698
|
|
3
3
|
tapps_agents/agents/analyst/SKILL.md,sha256=zojp4LafqC0ZPv49kVQ1_UuOazL9QPa5Dxxp-TFtfKs,2056
|
|
4
4
|
tapps_agents/agents/analyst/__init__.py,sha256=zLFkB6j1PkcpeaOk8Vnx76oYzVYyUqdULWj-pOyfLZY,135
|
|
@@ -7,6 +7,8 @@ tapps_agents/agents/architect/SKILL.md,sha256=y9o76lpcTX_u4nK7ikDdDk9PsECTwXwbe3
|
|
|
7
7
|
tapps_agents/agents/architect/__init__.py,sha256=IXPiHqbjYScQTOnXAY8xPJ7ErPhgeeXQy8G_B5Gcf9E,135
|
|
8
8
|
tapps_agents/agents/architect/agent.py,sha256=Y3H1PEnxYSLRtSayUA-_ZNnGA5HFiCL1wym_Sfg84e4,42507
|
|
9
9
|
tapps_agents/agents/architect/pattern_detector.py,sha256=TmgSmGsY6rGip8YV5et0HcXcjmzWawOZBZZwWeDb9_g,2972
|
|
10
|
+
tapps_agents/agents/cleanup/__init__.py,sha256=1YoZ2SpX6fOun5F0RAEMMyCUeUXxgcdDXpm_L1qx1O4,131
|
|
11
|
+
tapps_agents/agents/cleanup/agent.py,sha256=OzrRyjaKDiuiC_ryJQpUnc9gcPcDg6qY8scSZbnWnno,17178
|
|
10
12
|
tapps_agents/agents/debugger/SKILL.md,sha256=HANB65WPx26WFtGoMntbBcd3OcWm_7CP4XtGi0xSa98,2162
|
|
11
13
|
tapps_agents/agents/debugger/__init__.py,sha256=SY-6_cbvKpFSN3E3FJ0de_Tfj8VA2b95T_s39LMDkZU,130
|
|
12
14
|
tapps_agents/agents/debugger/agent.py,sha256=hTxNoAjcHVv7sIQhDJHm3uDkJzk6oy1aYfxxbToiXJM,11900
|
|
@@ -23,7 +25,7 @@ tapps_agents/agents/documenter/doc_validator.py,sha256=3nTEujC5-JQQaeK-e8qWpHOM6
|
|
|
23
25
|
tapps_agents/agents/documenter/framework_doc_updater.py,sha256=LhxhY5aDP_6yGsWUWkuK43jPDCOPdQ446k7x-C3YA_k,18438
|
|
24
26
|
tapps_agents/agents/enhancer/SKILL.md,sha256=HG_AYw8UYCcGj1vcXpXX0KGNkV7G0nRBD8ASzgVU8Hw,5661
|
|
25
27
|
tapps_agents/agents/enhancer/__init__.py,sha256=BT1vH1rkV2tsry9eBtI3U0EXEMWZB3ptGSTECKlcOcY,122
|
|
26
|
-
tapps_agents/agents/enhancer/agent.py,sha256=
|
|
28
|
+
tapps_agents/agents/enhancer/agent.py,sha256=LdmVhXhnum_JSWGb6mhvCGlHTg8LTy4RO5XsFuQwYZM,121804
|
|
27
29
|
tapps_agents/agents/evaluator/__init__.py,sha256=gGBp4fg8o33yQppF-G8139mOH3VrhFumVslMaecyOOs,151
|
|
28
30
|
tapps_agents/agents/evaluator/agent.py,sha256=djcsFQ5XM8FKgDU0OZdXj4VOxt2d9Uj90HSR0PgdFiQ,16092
|
|
29
31
|
tapps_agents/agents/evaluator/priority_evaluator.py,sha256=Wa9FobcOqPzbMVgVEPgkFrWDq6LItAF8Fe-j9WHgYw8,22948
|
|
@@ -113,7 +115,7 @@ tapps_agents/cli/base.py,sha256=1XoAc2v6zh0kZoDuf-2vPEQlUVGzWoFZZT8cxgblklw,1738
|
|
|
113
115
|
tapps_agents/cli/command_classifier.py,sha256=PesY18-Trn53OBktVPWmq6ddxAkz1EJ4mkYyEy9rpf8,2430
|
|
114
116
|
tapps_agents/cli/feedback.py,sha256=bhq37Iqocu9DLa-XOoZIH2K8nHCOzKdzeoFnQKC2D0M,36652
|
|
115
117
|
tapps_agents/cli/formatters.py,sha256=6O7CmMj3CA9KAVoNvUrX2nbswIqBnfmEexi4pCHUTDI,23207
|
|
116
|
-
tapps_agents/cli/main.py,sha256=
|
|
118
|
+
tapps_agents/cli/main.py,sha256=1iYKDQJYTSu7hkFtLL_X9ts2IQUUwRTJ4ba2zBmneuw,23970
|
|
117
119
|
tapps_agents/cli/network_detection.py,sha256=ZoSEqO2ro_HGQqGC6utBDKJypQlsihzXv9C_gZte-6A,3811
|
|
118
120
|
tapps_agents/cli/output_compactor.py,sha256=x5tkcIIFVnrKmtdo7PE0R-C84LWr4Agd2ulO1xclhRI,8979
|
|
119
121
|
tapps_agents/cli/progress_heartbeat.py,sha256=3CvT5El-9KbaImPdTp-IKPrUsRGw-2j1zi1PNWaGwIk,8549
|
|
@@ -121,6 +123,7 @@ tapps_agents/cli/streaming_progress.py,sha256=bp9rQShwjGdGtyfcL4mzQY-n14qZyhYONY
|
|
|
121
123
|
tapps_agents/cli/commands/__init__.py,sha256=uQOwkQLQqkjWydOGg5ggNLCnnwnIU9wvnAvXt1PSeog,35
|
|
122
124
|
tapps_agents/cli/commands/analyst.py,sha256=Vot2o3E1DrcoFD5BjeqvFHVMP9WbWu6JJ3Ld82lW2m0,8668
|
|
123
125
|
tapps_agents/cli/commands/architect.py,sha256=CYUC4FrB236EnQe0ZIqeq7VlrIDUfO91NQrcfOZfVnI,4464
|
|
126
|
+
tapps_agents/cli/commands/cleanup_agent.py,sha256=3EEPq4dg-HwiLrah0Fq7I0RXniIAUACXbbu10R2j5YA,3358
|
|
124
127
|
tapps_agents/cli/commands/common.py,sha256=ZNujv1n1uJKIVVbKNx_Lrvhevf0E6KRK-hfO59BCBh8,3363
|
|
125
128
|
tapps_agents/cli/commands/debugger.py,sha256=PXuQkVPgNO55VAif2JjclT6mfqkuylS98KlWBHj6Ds8,3394
|
|
126
129
|
tapps_agents/cli/commands/designer.py,sha256=OlfS1LDlLMdesXhWckTilJPALRJySB402ss3uy1_2r4,4969
|
|
@@ -146,6 +149,7 @@ tapps_agents/cli/help/static_help.py,sha256=0hFiOgLqBT-vM0yHoeY_Ea5JOg_anc_5_rPR
|
|
|
146
149
|
tapps_agents/cli/parsers/__init__.py,sha256=mtP0vrFd1P7i4V3N1B1wXKxM7ajCVLqNBul4998I5SI,35
|
|
147
150
|
tapps_agents/cli/parsers/analyst.py,sha256=6Cp2BMFAqgR9p_I8gOJ-IorgFETiE9uqJ3xvuyhZzhM,10319
|
|
148
151
|
tapps_agents/cli/parsers/architect.py,sha256=Catv0P3esfD7oN3E9bisfZ4w9ddqSwzd-faunX5r-Gs,9071
|
|
152
|
+
tapps_agents/cli/parsers/cleanup_agent.py,sha256=AVTzWEw23E_t2xm-74k4EgDDmr8ycLQeP703NdD90tw,7617
|
|
149
153
|
tapps_agents/cli/parsers/debugger.py,sha256=6GXsHh2iohUQTNvrMkQZRodI4LO5NZihJm7ICrRaG0E,6320
|
|
150
154
|
tapps_agents/cli/parsers/designer.py,sha256=UptPvtGVRRcr1-5hJJAO7yE1ren0rXJ0Mfa2pKTAyUY,9780
|
|
151
155
|
tapps_agents/cli/parsers/documenter.py,sha256=AYLdo1zYyA20xLlRU397i00oGa7p3nhjlQ2-bcNA6UI,6329
|
|
@@ -225,7 +229,7 @@ tapps_agents/core/cleanup_tool.py,sha256=Kj7xyfX8zXEWBEgKEAPdRI-qPCTtrwgHgwsemIm
|
|
|
225
229
|
tapps_agents/core/code_generator.py,sha256=Ma-5NWZnr4PcfFvZEFFUtn6hDzv7zAOVaZrTwmRiOrU,9881
|
|
226
230
|
tapps_agents/core/code_validator.py,sha256=SoP_zUBTzWEhfSuFNjawk_R6ytcgjJ8VClfCSILLKFE,8953
|
|
227
231
|
tapps_agents/core/command_registry.py,sha256=Re07pBBjwtilp9kaXn5Qxdjp01liT5pj1S7KUsXwQIg,10192
|
|
228
|
-
tapps_agents/core/config.py,sha256=
|
|
232
|
+
tapps_agents/core/config.py,sha256=Wk2Mn37--ctxx9PLQyKyP2bO9uGEodyUJMnoCK-gpN0,57913
|
|
229
233
|
tapps_agents/core/context_manager.py,sha256=UCftn4UnGt6xf_LErC8Ty5fWP2u6mcyv5tqvoLvfK5s,8184
|
|
230
234
|
tapps_agents/core/cursor_feedback_monitor.py,sha256=p0Ow-wktUyK745MKQwt9E7rWoelV9WacQ5HWk3iRQGM,5073
|
|
231
235
|
tapps_agents/core/cursor_verification.py,sha256=kLMshs5E0-W-13rwT3TnNQ-YIjmW6v7AHI6kkiaBc7M,9905
|
|
@@ -256,7 +260,7 @@ tapps_agents/core/feedback_analyzer.py,sha256=BZbqS53fVbaPdeRjw1Yw286mJrsY88yDYq
|
|
|
256
260
|
tapps_agents/core/feedback_collector.py,sha256=ynpkMWeOFyhuFC6goOdT29QRwd4kiVWgfd5ny9Mmczc,6218
|
|
257
261
|
tapps_agents/core/git_operations.py,sha256=rzqNTAj_XhnTtegxjXXZNpGeocL5LNM5DUWFNUp1les,14272
|
|
258
262
|
tapps_agents/core/hardware_profiler.py,sha256=OMram3JZkvdqRNSHvIAweHNuX_1Oy86jDCUldsVm8yw,4312
|
|
259
|
-
tapps_agents/core/init_project.py,sha256=
|
|
263
|
+
tapps_agents/core/init_project.py,sha256=CDFdPzQp31dNAFZjV6qxnK5t19ug5XIyAPRuAjKkGXQ,116138
|
|
260
264
|
tapps_agents/core/instructions.py,sha256=eMleDK9k5NFTQT3Aj_DgsiWt5Gj4GQjSq83bJUgiVhU,13044
|
|
261
265
|
tapps_agents/core/io_guardrails.py,sha256=X178WGZP1Ut8UU1Ox08pXBhfTHtN_etum5WgRjvLUrk,2206
|
|
262
266
|
tapps_agents/core/issue_manifest.py,sha256=NqwReBKfNp1ChiYvFkbVvD7_w47-RrssPIZo6NenFrc,10020
|
|
@@ -610,7 +614,7 @@ tapps_agents/simple_mode/orchestrators/deliverable_checklist.py,sha256=IMtxpzv1U
|
|
|
610
614
|
tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py,sha256=xmcicWcUPMwDHOfm-nS_6rV62-10dPZf8etj_eNGCYg,2112
|
|
611
615
|
tapps_agents/simple_mode/orchestrators/epic_orchestrator.py,sha256=6rJ-g5R0GtsFaM90fCAhP26Ag3EKe71Cd1P-yUT0NHQ,4340
|
|
612
616
|
tapps_agents/simple_mode/orchestrators/explore_orchestrator.py,sha256=MWkGaQ1kMj5H1B5ryHZUssMjXWI3Di11U_aUgrPJldA,6764
|
|
613
|
-
tapps_agents/simple_mode/orchestrators/fix_orchestrator.py,sha256=
|
|
617
|
+
tapps_agents/simple_mode/orchestrators/fix_orchestrator.py,sha256=JTMV42pU4d0v8yAY5xDQfe271tNEJAeZrHaJ-aw-SrY,33525
|
|
614
618
|
tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py,sha256=aR0qMtJ6jlUx1T5dhVn-_sYg9YPN0Wl7044kD7jYF40,7266
|
|
615
619
|
tapps_agents/simple_mode/orchestrators/pr_orchestrator.py,sha256=1KPEBdAE2M163rwp367qRkrTGlRM1A53qIZmfM1kR5g,8603
|
|
616
620
|
tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py,sha256=bOEj9m67HqHqa2oLY4YEP5wKdN8Knk1rsds5XXGAcdk,8157
|
|
@@ -659,7 +663,7 @@ tapps_agents/workflow/detector.py,sha256=bvOrTPT2TS08e6sA05szm22oyipLpJx5oKc6Ca_
|
|
|
659
663
|
tapps_agents/workflow/direct_execution_fallback.py,sha256=KOOgbAE_iXRtcRGP4BmvKeu9Mb40VJXB4sgDScZGGfU,10822
|
|
660
664
|
tapps_agents/workflow/docs_artifact.py,sha256=7NNlLEfFkvjIvxLhZAIdpdieC5oPsZElTPflFzA-S_k,5702
|
|
661
665
|
tapps_agents/workflow/durable_state.py,sha256=qGjVp5FXSQsKuLtBBWlwwyo9CbKKjU1OwS1jBmDMjJY,24882
|
|
662
|
-
tapps_agents/workflow/enforcer.py,sha256=
|
|
666
|
+
tapps_agents/workflow/enforcer.py,sha256=2FAUd1_utDbOM2F3YRoM4F2u7M-bzHLMCDDS-mdy-xo,15208
|
|
663
667
|
tapps_agents/workflow/enhancement_artifact.py,sha256=wHdmIJT6i7KO39rTibO5ehVIMbMmya63AyyRqqLTCGM,4830
|
|
664
668
|
tapps_agents/workflow/error_recovery.py,sha256=E4yW9W4rmCmXawnogi6IwjNyxsy6uAdohoqLZgsiNOM,29493
|
|
665
669
|
tapps_agents/workflow/event_bus.py,sha256=gl0aiK35xMJOUhISV6n_1SJTDxarrZIyflfcRVX-fkM,5870
|
|
@@ -679,6 +683,7 @@ tapps_agents/workflow/intent_detector.py,sha256=6JZVk0s2bfFKRO3UNkjfxV7t6PzvirMr
|
|
|
679
683
|
tapps_agents/workflow/logging_helper.py,sha256=x38gDL_ZdlQMnSoIb8aPSVc2hgCj8cgMSzua8o0Rplc,8982
|
|
680
684
|
tapps_agents/workflow/manifest.py,sha256=D5v3E-fBoD0dEK5BNDj_VmVdJmUoT7rCQrJQSygeWRg,20341
|
|
681
685
|
tapps_agents/workflow/marker_writer.py,sha256=2uaP86Fwm_QUPjqRCUdJcNlrHEAD6P7PRJBGpqUhxMo,8325
|
|
686
|
+
tapps_agents/workflow/message_formatter.py,sha256=md_Dwxb5AVM7iVgQOc5uJvovierOCfpt_Q7BQLaZHJE,6058
|
|
682
687
|
tapps_agents/workflow/messaging.py,sha256=fzVDP7vvQXjJG3AGTS1mp1GiBPaK_NzkPNlxCWxfJ6A,11547
|
|
683
688
|
tapps_agents/workflow/metadata_models.py,sha256=xsigrFQgIgFzLJn7qwCa242w49iEv-QwIrFGkGzL0Zg,2954
|
|
684
689
|
tapps_agents/workflow/metrics_enhancements.py,sha256=6u5EnXCJTyLbi5BcouKamW2Pzutmzjv-Fy-ZGCHVgxk,25800
|
|
@@ -708,7 +713,7 @@ tapps_agents/workflow/recommender.py,sha256=i4i_qKxYvADBVuXil53WmJp-bRNCwTjh2S_l
|
|
|
708
713
|
tapps_agents/workflow/remediation_loop.py,sha256=DoLsfE5ncxuBXvieYaCFAYbFx1grdkNuxPxzWXY_wb0,5522
|
|
709
714
|
tapps_agents/workflow/result_aggregator.py,sha256=R-ZDVT0XPfqJP4Qyt8Y12MpG3U9419YONxWADm6_IS4,11208
|
|
710
715
|
tapps_agents/workflow/review_artifact.py,sha256=eU8udcTP4aFYXEYxFXsp-Z3YmPBwK981GSNe2Sd2LUY,6786
|
|
711
|
-
tapps_agents/workflow/rules_generator.py,sha256=
|
|
716
|
+
tapps_agents/workflow/rules_generator.py,sha256=lJLNRLJsbZD5Ml_-O1gcFBNjryC--6F0kH59lLs2sBs,13703
|
|
712
717
|
tapps_agents/workflow/schema_validator.py,sha256=RLQLg1JEYjjIaY5vZWMLwNXJm-dsPMadPYMqdzaN-lw,18870
|
|
713
718
|
tapps_agents/workflow/session_handoff.py,sha256=mPQPxVAgyjdgok0RZvasR147jFRciV2vAHZ4DBwNFk8,5546
|
|
714
719
|
tapps_agents/workflow/skill_invoker.py,sha256=BH8y9FNOvXfPwMQCH-QekdgysdQwi3-YgBbNf0x3gf4,24270
|
|
@@ -743,9 +748,9 @@ tapps_agents/workflow/agent_handlers/planner_handler.py,sha256=9oVSsA6Lso5NncYPS
|
|
|
743
748
|
tapps_agents/workflow/agent_handlers/registry.py,sha256=aYMU59da4SBgDgqMy4Basu1yL8CvDvdi929n6XM50ro,3613
|
|
744
749
|
tapps_agents/workflow/agent_handlers/reviewer_handler.py,sha256=D4spVUk4l9mJsSsDIKC88EL-2k43YObNz5v439EtDRc,4285
|
|
745
750
|
tapps_agents/workflow/agent_handlers/tester_handler.py,sha256=e44Eqn1CIpcqYqCrjaTK748yb4k7PlzGdK9zSne-SfY,2249
|
|
746
|
-
tapps_agents-3.5.
|
|
747
|
-
tapps_agents-3.5.
|
|
748
|
-
tapps_agents-3.5.
|
|
749
|
-
tapps_agents-3.5.
|
|
750
|
-
tapps_agents-3.5.
|
|
751
|
-
tapps_agents-3.5.
|
|
751
|
+
tapps_agents-3.5.39.dist-info/licenses/LICENSE,sha256=xwT0RCg0KluJ63lZcgkSOiYkpEIEXYlIGqRtkGGsPe0,1085
|
|
752
|
+
tapps_agents-3.5.39.dist-info/METADATA,sha256=2kTgXhK4_tyeEGAnmgN5Mq7KMgLDfwEhb7udmUwYrNU,40611
|
|
753
|
+
tapps_agents-3.5.39.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
754
|
+
tapps_agents-3.5.39.dist-info/entry_points.txt,sha256=b8WhZxYg2xA-ocElPeY0LDSqRCOgzw6PuEksZD6BB2E,55
|
|
755
|
+
tapps_agents-3.5.39.dist-info/top_level.txt,sha256=AR0UfcM1nJhQ413h8j1ObAGsUrbfys55D-qKUBGzYtk,13
|
|
756
|
+
tapps_agents-3.5.39.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|