Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
aa3817e
feat(observability): Implement Phase 1 - Trace Context Propagation
theinterneti Oct 28, 2025
e375444
feat(observability): Implement Phase 2 - Core Primitive Instrumentati…
theinterneti Oct 28, 2025
5c6868d
feat(observability): Phase 3 - Enhanced Metrics and SLO Tracking
theinterneti Oct 28, 2025
73ec365
feat(keploy-framework): Add reusable Keploy automation framework
theinterneti Oct 28, 2025
454e80d
feat(observability): Complete Phase 3 - Prometheus, Grafana, AlertMan…
theinterneti Oct 29, 2025
3de62a5
Refactor memory workflow and PAF memory classes for improved readabil…
theinterneti Oct 29, 2025
5758fff
fix: Address Copilot review feedback on PR #16
theinterneti Oct 29, 2025
1b4a9ac
feat: implement Phase 1 workflow enhancements
theinterneti Oct 29, 2025
9bf7f59
feat: add Phase 1 helper script and documentation
theinterneti Oct 29, 2025
8d30eb3
fix: add root pyproject.toml for workspace-level CI
theinterneti Oct 29, 2025
33217b8
fix: configure uv workspace with proper member references
theinterneti Oct 29, 2025
c699254
docs: add comprehensive UV integration guide
theinterneti Oct 29, 2025
3f29815
feat: implement modular language pathway system
theinterneti Oct 29, 2025
42d21cd
feat(Phase 2): aggressive Python extraction to python-pathway
theinterneti Oct 29, 2025
b576ac4
docs: add Phase 2 Python extraction completion summary
theinterneti Oct 29, 2025
aa8c104
Update packages/tta-dev-primitives/src/tta_dev_primitives/observabili…
theinterneti Oct 31, 2025
46b48ea
Update packages/tta-dev-primitives/src/tta_dev_primitives/observabili…
theinterneti Nov 13, 2025
7625f8c
Initial plan
Copilot Nov 13, 2025
4005c70
Initial plan
Copilot Nov 13, 2025
c9e6451
fix: remove Prometheus Counter _value access anti-pattern
Copilot Nov 13, 2025
ed9d166
fix: address code review feedback - Counter anti-pattern, type annota…
Copilot Nov 13, 2025
1348d33
Merge pull request #92 from theinterneti/copilot/sub-pr-26-please-work
theinterneti Nov 13, 2025
2ca18fd
Potential fix for code scanning alert no. 60: Workflow does not conta…
theinterneti Nov 13, 2025
10a1c24
Potential fix for code scanning alert no. 61: Workflow does not conta…
theinterneti Nov 13, 2025
316009e
Potential fix for code scanning alert no. 59: Workflow does not conta…
theinterneti Nov 13, 2025
ee17913
Merge feature/keploy-framework into copilot/sub-pr-26-one-more-time
actions-user Nov 14, 2025
4a3f72a
Merge pull request #91 from theinterneti/copilot/sub-pr-26-one-more-time
theinterneti Nov 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 28 additions & 23 deletions .augment/rules/package-source.instructions.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
type: "agent_requested"
description: "Example description"
---

# TTA.dev - AI Development Toolkit

**Production-quality agentic primitives and workflow patterns for building reliable AI applications.**
Expand Down Expand Up @@ -380,14 +385,14 @@ async def execute(self, input_data: dict, context: WorkflowContext) -> dict:
async def execute(self, input_data: dict, context: WorkflowContext) -> dict:
"""
Process input with validation.

Args:
input_data: Data to process
context: Workflow context

Returns:
Processed result

Example:
```python
result = await processor.execute({"key": "value"}, context)
Expand Down Expand Up @@ -868,11 +873,11 @@ from tta_dev_primitives.core.base import WorkflowContext, WorkflowPrimitive

## Anti-Patterns to Avoid

❌ Using `pip` instead of `uv`
❌ Creating primitives without type hints
❌ Skipping tests ("will add later")
❌ Global state instead of `WorkflowContext`
❌ Modifying code without running quality checks
❌ Using `pip` instead of `uv`
❌ Creating primitives without type hints
❌ Skipping tests ("will add later")
❌ Global state instead of `WorkflowContext`
❌ Modifying code without running quality checks
❌ Using `Optional[T]` instead of `T | None`
# Package Source Code Guidelines

Expand Down Expand Up @@ -912,14 +917,14 @@ class MyWorkflow(WorkflowPrimitive[InputType, OutputType]):
async def execute(self, input_data: InputType, context: WorkflowContext) -> OutputType:
"""
Brief description.

Args:
input_data: Description
context: Workflow context for tracing

Returns:
Description

Example:
```python
workflow = MyWorkflow()
Expand Down Expand Up @@ -1004,21 +1009,21 @@ Every public class and method needs Google-style docstrings:
async def execute(self, input_data: dict, context: WorkflowContext) -> dict:
"""
Process input data with validation and transformation.

This method validates the input structure, applies transformations,
and returns the processed result.

Args:
input_data: Raw input containing 'query' and optional 'params'
context: Workflow context with session tracking info

Returns:
Processed data with 'result' and 'metadata' keys

Raises:
ValidationError: If required fields are missing
TimeoutError: If processing exceeds configured timeout

Example:
```python
processor = DataProcessor(timeout=5.0)
Expand Down Expand Up @@ -1056,7 +1061,7 @@ from pydantic import BaseModel, Field

class InputData(BaseModel):
"""Input structure for processing."""

query: str = Field(..., description="Search query")
max_results: int = Field(10, ge=1, le=100, description="Maximum results")
metadata: dict[str, Any] = Field(default_factory=dict)
Expand All @@ -1077,21 +1082,21 @@ Before committing, ensure:
ntext) -> dict:
"""
Process input data with validation and transformation.

This method validates the input structure, applies transformations,
and returns the processed result.

Args:
input_data: Raw input containing 'query' and optional 'params'
context: Workflow context with session tracking info

Returns:
Processed data with 'result' and 'metadata' keys

Raises:
ValidationError: If required fields are missing
TimeoutError: If processing exceeds configured timeout

Example:
```python
processor = DataProcessor(timeout=5.0)
Expand Down Expand Up @@ -1129,7 +1134,7 @@ from pydantic import BaseModel, Field

class InputData(BaseModel):
"""Input structure for processing."""

query: str = Field(..., description="Search query")
max_results: int = Field(10, ge=1, le=100, description="Maximum results")
metadata: dict[str, Any] = Field(default_factory=dict)
Expand Down
31 changes: 18 additions & 13 deletions .augment/rules/scripts.instructions.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
type: "agent_requested"
description: "Example description"
---

# Scripts Guidelines

## Core Principle
Expand Down Expand Up @@ -62,7 +67,7 @@ def build_workflow(models: list[str]):
timeout_seconds=30.0
)
model_tests.append(inject_name >> test)

# Run all in parallel, cache for 1 hour
return CachePrimitive(
ParallelPrimitive(model_tests),
Expand All @@ -74,9 +79,9 @@ async def main():
models = ["phi-4", "qwen-0.5b", "qwen-1.5b"]
workflow = build_workflow(models)
context = WorkflowContext(workflow_id="model-eval")

results = await workflow.execute({}, context)

for result in results:
print(f"{result['model']}: {result['score']}")

Expand Down Expand Up @@ -132,7 +137,7 @@ def build_startup_workflow(servers: list[str]):
timeout_seconds=10.0
)
server_starts.append(inject_name >> start >> health)

# Start all servers in parallel, then validate
return SequentialPrimitive([
ParallelPrimitive(server_starts),
Expand All @@ -143,7 +148,7 @@ async def main():
servers = ["basic", "agent_tool", "knowledge_resource"]
workflow = build_startup_workflow(servers)
context = WorkflowContext(workflow_id="mcp-startup")

result = await workflow.execute({}, context)
print(f"All servers started: {result['status']}")

Expand Down Expand Up @@ -188,17 +193,17 @@ async def run_tests(data: dict, ctx: WorkflowContext) -> dict:
def build_validation_workflow(package: str):
"""Build validation workflow with parallel checks."""
inject_package = LambdaPrimitive(lambda d, c: {"package": package})

# Run format, lint, types in parallel
parallel_checks = ParallelPrimitive([
LambdaPrimitive(run_formatter),
LambdaPrimitive(run_linter),
LambdaPrimitive(run_type_check),
])

# Then run tests (depends on code quality)
tests = LambdaPrimitive(run_tests)

# Aggregate results
aggregate = LambdaPrimitive(
lambda d, c: {
Expand All @@ -207,15 +212,15 @@ def build_validation_workflow(package: str):
"all_passed": all(r["passed"] for r in d if isinstance(r, dict))
}
)

return inject_package >> parallel_checks >> tests >> aggregate

async def main():
workflow = build_validation_workflow("tta-dev-primitives")
context = WorkflowContext(workflow_id="validation")

result = await workflow.execute({}, context)

print(f"Package: {result['package']}")
print(f"All checks passed: {result['all_passed']}")

Expand Down Expand Up @@ -257,10 +262,10 @@ async def main():
parser = argparse.ArgumentParser(description="Script description")
# Add arguments
args = parser.parse_args()

workflow = build_workflow()
context = WorkflowContext(workflow_id="script-name")

result = await workflow.execute(input_data, context)
print(f"Result: {result}")

Expand Down
Loading
Loading