synara-ai 0.1.0__tar.gz

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 (127) hide show
  1. synara_ai-0.1.0/PKG-INFO +91 -0
  2. synara_ai-0.1.0/README.md +75 -0
  3. synara_ai-0.1.0/pyproject.toml +37 -0
  4. synara_ai-0.1.0/setup.cfg +4 -0
  5. synara_ai-0.1.0/src/synara/__init__.py +0 -0
  6. synara_ai-0.1.0/src/synara/agents/__init__.py +0 -0
  7. synara_ai-0.1.0/src/synara/agents/advanced.py +45 -0
  8. synara_ai-0.1.0/src/synara/agents/backend.py +33 -0
  9. synara_ai-0.1.0/src/synara/agents/frontend.py +32 -0
  10. synara_ai-0.1.0/src/synara/agents/fullstack.py +35 -0
  11. synara_ai-0.1.0/src/synara/agents/legacy.py +29 -0
  12. synara_ai-0.1.0/src/synara/agents/mobile.py +34 -0
  13. synara_ai-0.1.0/src/synara/agents/qa.py +31 -0
  14. synara_ai-0.1.0/src/synara/agents/test_agents.py +635 -0
  15. synara_ai-0.1.0/src/synara/cli/__init__.py +352 -0
  16. synara_ai-0.1.0/src/synara/cli/__main__.py +4 -0
  17. synara_ai-0.1.0/src/synara/cli/commands/__init__.py +1 -0
  18. synara_ai-0.1.0/src/synara/cli/commands/add_agent.py +72 -0
  19. synara_ai-0.1.0/src/synara/cli/commands/add_skill.py +55 -0
  20. synara_ai-0.1.0/src/synara/cli/commands/doctor.py +128 -0
  21. synara_ai-0.1.0/src/synara/cli/commands/init.py +206 -0
  22. synara_ai-0.1.0/src/synara/cli/commands/list.py +65 -0
  23. synara_ai-0.1.0/src/synara/cli/commands/sync.py +63 -0
  24. synara_ai-0.1.0/src/synara/cli/commands/update.py +68 -0
  25. synara_ai-0.1.0/src/synara/cli/main.py +40 -0
  26. synara_ai-0.1.0/src/synara/core/__init__.py +0 -0
  27. synara_ai-0.1.0/src/synara/core/adapters.py +912 -0
  28. synara_ai-0.1.0/src/synara/core/base_agent.py +124 -0
  29. synara_ai-0.1.0/src/synara/core/checksum.py +22 -0
  30. synara_ai-0.1.0/src/synara/core/config.py +25 -0
  31. synara_ai-0.1.0/src/synara/core/config_manager.py +43 -0
  32. synara_ai-0.1.0/src/synara/core/feedback.py +1 -0
  33. synara_ai-0.1.0/src/synara/core/feedback_loop.py +72 -0
  34. synara_ai-0.1.0/src/synara/core/file_writer.py +124 -0
  35. synara_ai-0.1.0/src/synara/core/markdown_loader.py +144 -0
  36. synara_ai-0.1.0/src/synara/core/memory.py +1 -0
  37. synara_ai-0.1.0/src/synara/core/memory_store.py +121 -0
  38. synara_ai-0.1.0/src/synara/core/models.py +343 -0
  39. synara_ai-0.1.0/src/synara/core/orchestrator.py +58 -0
  40. synara_ai-0.1.0/src/synara/core/project_detector.py +57 -0
  41. synara_ai-0.1.0/src/synara/core/template_manager.py +23 -0
  42. synara_ai-0.1.0/src/synara/core/token_killer.py +129 -0
  43. synara_ai-0.1.0/src/synara/templates/__init__.py +1 -0
  44. synara_ai-0.1.0/src/synara/templates/__pycache__/__init__.cpython-314.pyc +0 -0
  45. synara_ai-0.1.0/src/synara/templates/agents/api_design.md +11 -0
  46. synara_ai-0.1.0/src/synara/templates/agents/database_schema.md +11 -0
  47. synara_ai-0.1.0/src/synara/templates/agents/navigation.md +9 -0
  48. synara_ai-0.1.0/src/synara/templates/agents/push_notification.md +6 -0
  49. synara_ai-0.1.0/src/synara/templates/agents/react_native_expo_coding.md +11 -0
  50. synara_ai-0.1.0/src/synara/templates/agents/react_nextjs_coding.md +12 -0
  51. synara_ai-0.1.0/src/synara/templates/agents/requirement_review.md +6 -0
  52. synara_ai-0.1.0/src/synara/templates/agents/synara_governance.md +6 -0
  53. synara_ai-0.1.0/src/synara/templates/agents/system_architect.md +6 -0
  54. synara_ai-0.1.0/src/synara/templates/agents/ui_ux_analyzer.md +11 -0
  55. synara_ai-0.1.0/src/synara/templates/default/agents/agent-contract.md +2 -0
  56. synara_ai-0.1.0/src/synara/templates/default/agents/agents-architecture.md +2 -0
  57. synara_ai-0.1.0/src/synara/templates/default/execution-engine/ci-runner-adapter.md +13 -0
  58. synara_ai-0.1.0/src/synara/templates/default/execution-engine/claude-code-adapter.md +14 -0
  59. synara_ai-0.1.0/src/synara/templates/default/execution-engine/codex-adapter.md +14 -0
  60. synara_ai-0.1.0/src/synara/templates/default/execution-engine/cursor-adapter.md +13 -0
  61. synara_ai-0.1.0/src/synara/templates/default/execution-engine/local-cli-adapter.md +13 -0
  62. synara_ai-0.1.0/src/synara/templates/default/execution-engine/openclaw-adapter.md +13 -0
  63. synara_ai-0.1.0/src/synara/templates/default/execution-engine/openhands-adapter.md +13 -0
  64. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/ci-feedback.md +9 -0
  65. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/datadog-feedback.md +9 -0
  66. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/github-feedback.md +10 -0
  67. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/maestro-feedback.md +9 -0
  68. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/playwright-feedback.md +10 -0
  69. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/release-feedback.md +9 -0
  70. synara_ai-0.1.0/src/synara/templates/default/feedback-loop/sentry-feedback.md +10 -0
  71. synara_ai-0.1.0/src/synara/templates/default/governance/audit-logging-schema.md +2 -0
  72. synara_ai-0.1.0/src/synara/templates/default/governance/compliance-rules.md +2 -0
  73. synara_ai-0.1.0/src/synara/templates/default/knowledge/business-domain-wiki.md +2 -0
  74. synara_ai-0.1.0/src/synara/templates/default/memory-store/adr/adr-rules.md +5 -0
  75. synara_ai-0.1.0/src/synara/templates/default/memory-store/dependency-history/dependency-rules.md +4 -0
  76. synara_ai-0.1.0/src/synara/templates/default/memory-store/incidents/incident-rules.md +8 -0
  77. synara_ai-0.1.0/src/synara/templates/default/memory-store/lessons-learned/lessons-rules.md +4 -0
  78. synara_ai-0.1.0/src/synara/templates/default/memory-store/memory-read-rules.md +10 -0
  79. synara_ai-0.1.0/src/synara/templates/default/memory-store/memory-write-rules.md +9 -0
  80. synara_ai-0.1.0/src/synara/templates/default/memory-store/quality-history/quality-rules.md +4 -0
  81. synara_ai-0.1.0/src/synara/templates/default/memory-store/rejected-decisions/rejected-rules.md +4 -0
  82. synara_ai-0.1.0/src/synara/templates/default/memory-store/release-history/release-rules.md +4 -0
  83. synara_ai-0.1.0/src/synara/templates/default/memory-store/risk-register/risk-rules.md +4 -0
  84. synara_ai-0.1.0/src/synara/templates/default/memory-store/successful-patterns/pattern-rules.md +4 -0
  85. synara_ai-0.1.0/src/synara/templates/default/memory-store/test-history/test-rules.md +4 -0
  86. synara_ai-0.1.0/src/synara/templates/default/memory-store/vector-db/spec.md +10 -0
  87. synara_ai-0.1.0/src/synara/templates/default/metrics/metrics-schema.md +2 -0
  88. synara_ai-0.1.0/src/synara/templates/default/playbooks/common-recipes.md +2 -0
  89. synara_ai-0.1.0/src/synara/templates/default/playbooks/playbook-schema.md +2 -0
  90. synara_ai-0.1.0/src/synara/templates/default/quality-gates/quality-gates-spec.md +2 -0
  91. synara_ai-0.1.0/src/synara/templates/default/router/router-spec.md +2 -0
  92. synara_ai-0.1.0/src/synara/templates/default/rules/rules-manifest.json +9 -0
  93. synara_ai-0.1.0/src/synara/templates/default/skills/custom-tools.md +2 -0
  94. synara_ai-0.1.0/src/synara/templates/default/skills/enterprise-mobile-standards.md +85 -0
  95. synara_ai-0.1.0/src/synara/templates/default/skills/global-anti-hardcoding.md +38 -0
  96. synara_ai-0.1.0/src/synara/templates/default/skills/skills-registry.md +2 -0
  97. synara_ai-0.1.0/src/synara/templates/default/templates/adr-template.md +2 -0
  98. synara_ai-0.1.0/src/synara/templates/default/templates/pr-template.md +2 -0
  99. synara_ai-0.1.0/src/synara/templates/default/workflows/e2e-dev-flow.md +2 -0
  100. synara_ai-0.1.0/src/synara/templates/default/workflows/workflows-schema.md +2 -0
  101. synara_ai-0.1.0/src/synara/templates/manifest.json +152 -0
  102. synara_ai-0.1.0/src/synara/templates/playbooks/feature-implementation.md +7 -0
  103. synara_ai-0.1.0/src/synara/templates/quality_gates/lint-check.md +2 -0
  104. synara_ai-0.1.0/src/synara/templates/skills/android-cli.md +2 -0
  105. synara_ai-0.1.0/src/synara/templates/skills/eslint.md +2 -0
  106. synara_ai-0.1.0/src/synara/templates/skills/jest-test.md +2 -0
  107. synara_ai-0.1.0/src/synara/templates/skills/mobile-adv-libs.md +126 -0
  108. synara_ai-0.1.0/src/synara/workflows/__init__.py +0 -0
  109. synara_ai-0.1.0/src/synara/workflows/demo_advanced.py +58 -0
  110. synara_ai-0.1.0/src/synara/workflows/e2e_workflow.py +30 -0
  111. synara_ai-0.1.0/src/synara_ai.egg-info/PKG-INFO +91 -0
  112. synara_ai-0.1.0/src/synara_ai.egg-info/SOURCES.txt +125 -0
  113. synara_ai-0.1.0/src/synara_ai.egg-info/dependency_links.txt +1 -0
  114. synara_ai-0.1.0/src/synara_ai.egg-info/entry_points.txt +2 -0
  115. synara_ai-0.1.0/src/synara_ai.egg-info/requires.txt +3 -0
  116. synara_ai-0.1.0/src/synara_ai.egg-info/top_level.txt +1 -0
  117. synara_ai-0.1.0/tests/test_adapters_extended.py +193 -0
  118. synara_ai-0.1.0/tests/test_agy_cli_adapter.py +138 -0
  119. synara_ai-0.1.0/tests/test_all_agents.py +120 -0
  120. synara_ai-0.1.0/tests/test_architecture_guardrails.py +73 -0
  121. synara_ai-0.1.0/tests/test_claude_adapter.py +85 -0
  122. synara_ai-0.1.0/tests/test_cleanup.py +201 -0
  123. synara_ai-0.1.0/tests/test_cli.py +180 -0
  124. synara_ai-0.1.0/tests/test_codex_cli_adapter.py +86 -0
  125. synara_ai-0.1.0/tests/test_fallback_adapter.py +232 -0
  126. synara_ai-0.1.0/tests/test_synara_cli.py +166 -0
  127. synara_ai-0.1.0/tests/test_token_killer.py +77 -0
@@ -0,0 +1,91 @@
1
+ Metadata-Version: 2.4
2
+ Name: synara-ai
3
+ Version: 0.1.0
4
+ Summary: Synara reusable CLI tool
5
+ Author-email: DamianosDev <developer@example.com>
6
+ Project-URL: Homepage, https://github.com/DamianosDev/harness_engineers
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Environment :: Console
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: typer>=0.12.0
14
+ Requires-Dist: rich>=13.0.0
15
+ Requires-Dist: pydantic>=2.0.0
16
+
17
+ # Synara Framework: AI Agent Prompts & Architecture
18
+
19
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
20
+ [![Python Version](https://img.shields.io/badge/Python-3.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
21
+ [![Status](https://img.shields.io/badge/Status-Active-brightgreen)](#)
22
+
23
+ This project defines and implements the **Synara Framework**, a robust architecture for orchestrating autonomous Multi-Agent systems using a strict **Prompt-as-Code** philosophy. This framework controls behavior, optimizes context windows, and raises the reliability of AI Agents throughout the software development lifecycle by decoupling agent intelligence from rigid execution logic.
24
+
25
+ ---
26
+
27
+ ## 📖 Documentation Hub
28
+
29
+ The Synara Framework documentation has been divided into modular guides for easier navigation:
30
+
31
+ * 🧠 **[Synara Framework Architecture & Agent Limits](docs/framework.md)**
32
+ * 🏛️ **[13-Layer System Architecture](docs/architecture-13-layers.md)**: Detailed breakdown of the runtime execution layers and directories.
33
+ * 📜 **[Prompt-as-Code Philosophy](.synara/governance/compliance-rules.md)**: Explore the rules governing our Prompt-as-Code ecosystem.
34
+ * ⚙️ **[Configuration Guide](docs/configuration.md)**: Explains the `synara.config.json` schema, including AI memory constraints and Quota Fallback logic.
35
+ * 💻 **[CLI Reference](docs/cli-reference.md)**: Documentation for the `synara-ai` CLI, safe file writer, and command options.
36
+ * 📦 **[Presets, Agents, and Skills](docs/presets-and-skills.md)**: Catalog of built-in templates, advanced Android integrations, and mobile libraries.
37
+ * 🔄 **[Git Workflow](docs/git-workflow.md)**: Standardized branching and commit processes for Synara.
38
+
39
+ ---
40
+
41
+ ## 🚀 Installation
42
+
43
+ Synara provides a standalone CLI (`synara-ai`) that can be installed globally via `pipx` or `brew`.
44
+
45
+ ### Option 1: Install via `pipx` (Recommended)
46
+ This is the recommended way to install Python CLIs as it creates an isolated environment.
47
+ ```bash
48
+ pipx install git+https://github.com/DamianosDev/harness_engineers.git@develop
49
+ ```
50
+
51
+ ### Option 2: Install via Homebrew
52
+ You can install the CLI directly from the source code using the provided Homebrew formula:
53
+ ```bash
54
+ brew install ./Formula/synara-ai.rb
55
+ ```
56
+
57
+ ---
58
+
59
+ ## ⚡ Core Principles
60
+
61
+ The Synara system operates on four main technical pillars:
62
+
63
+ 1. **Prompt-as-Code:** Agent intelligence, behavior, and roles must be defined explicitly in Markdown files with YAML frontmatter (`.synara/agents/*.md`), completely decoupled from Python execution code.
64
+ 2. **Context Engineering:** Deliver exactly what the agent needs through a **Context Pack** (intentional context compression), rather than stuffing the entire codebase. This prevents the AI from hallucinating.
65
+ 3. **No Vibes Allowed:** Force the AI to perform structured, step-by-step planning and reasoning before writing any code.
66
+ 4. **Anti-Slop:** Constraint the output format via an **Output Contract**, automatically rejecting wordy or redundant responses and preventing unrelated logic changes.
67
+
68
+ ---
69
+
70
+ ## 📜 Prompt-as-Code Architecture
71
+
72
+ Synara strictly enforces that **all Agent definitions must live in Markdown files**, not hardcoded in Python. This guarantees modularity, easy maintenance, and protects the system from architectural regression.
73
+
74
+ ### Dynamic Agent Loading
75
+ When an agent is requested, the system uses the `markdown_loader.py` module to dynamically parse the Markdown files located in `.synara/agents/*.md`.
76
+
77
+ Each file must contain a **YAML Frontmatter** block:
78
+ ```yaml
79
+ ---
80
+ name: code-reviewer
81
+ description: Expert code reviewer specializing in SOLID principles and clean architecture.
82
+ model: models/gemini-3.1-pro-high
83
+ tools:
84
+ - view_file
85
+ - run_command
86
+ ---
87
+ ```
88
+ The content below the frontmatter serves as the Agent's specific System Prompt.
89
+
90
+ ### AST Guardrails
91
+ To prevent future developers or AI systems from regressing into a hardcoded architecture, the project utilizes strict AST (Abstract Syntax Tree) unit tests (`tests/test_architecture_guardrails.py`). If any large string constant (prompt) is detected directly inside the Python agent controllers, the CI pipeline will instantly fail.
@@ -0,0 +1,75 @@
1
+ # Synara Framework: AI Agent Prompts & Architecture
2
+
3
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
+ [![Python Version](https://img.shields.io/badge/Python-3.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
5
+ [![Status](https://img.shields.io/badge/Status-Active-brightgreen)](#)
6
+
7
+ This project defines and implements the **Synara Framework**, a robust architecture for orchestrating autonomous Multi-Agent systems using a strict **Prompt-as-Code** philosophy. This framework controls behavior, optimizes context windows, and raises the reliability of AI Agents throughout the software development lifecycle by decoupling agent intelligence from rigid execution logic.
8
+
9
+ ---
10
+
11
+ ## 📖 Documentation Hub
12
+
13
+ The Synara Framework documentation has been divided into modular guides for easier navigation:
14
+
15
+ * 🧠 **[Synara Framework Architecture & Agent Limits](docs/framework.md)**
16
+ * 🏛️ **[13-Layer System Architecture](docs/architecture-13-layers.md)**: Detailed breakdown of the runtime execution layers and directories.
17
+ * 📜 **[Prompt-as-Code Philosophy](.synara/governance/compliance-rules.md)**: Explore the rules governing our Prompt-as-Code ecosystem.
18
+ * ⚙️ **[Configuration Guide](docs/configuration.md)**: Explains the `synara.config.json` schema, including AI memory constraints and Quota Fallback logic.
19
+ * 💻 **[CLI Reference](docs/cli-reference.md)**: Documentation for the `synara-ai` CLI, safe file writer, and command options.
20
+ * 📦 **[Presets, Agents, and Skills](docs/presets-and-skills.md)**: Catalog of built-in templates, advanced Android integrations, and mobile libraries.
21
+ * 🔄 **[Git Workflow](docs/git-workflow.md)**: Standardized branching and commit processes for Synara.
22
+
23
+ ---
24
+
25
+ ## 🚀 Installation
26
+
27
+ Synara provides a standalone CLI (`synara-ai`) that can be installed globally via `pipx` or `brew`.
28
+
29
+ ### Option 1: Install via `pipx` (Recommended)
30
+ This is the recommended way to install Python CLIs as it creates an isolated environment.
31
+ ```bash
32
+ pipx install git+https://github.com/DamianosDev/harness_engineers.git@develop
33
+ ```
34
+
35
+ ### Option 2: Install via Homebrew
36
+ You can install the CLI directly from the source code using the provided Homebrew formula:
37
+ ```bash
38
+ brew install ./Formula/synara-ai.rb
39
+ ```
40
+
41
+ ---
42
+
43
+ ## ⚡ Core Principles
44
+
45
+ The Synara system operates on four main technical pillars:
46
+
47
+ 1. **Prompt-as-Code:** Agent intelligence, behavior, and roles must be defined explicitly in Markdown files with YAML frontmatter (`.synara/agents/*.md`), completely decoupled from Python execution code.
48
+ 2. **Context Engineering:** Deliver exactly what the agent needs through a **Context Pack** (intentional context compression), rather than stuffing the entire codebase. This prevents the AI from hallucinating.
49
+ 3. **No Vibes Allowed:** Force the AI to perform structured, step-by-step planning and reasoning before writing any code.
50
+ 4. **Anti-Slop:** Constraint the output format via an **Output Contract**, automatically rejecting wordy or redundant responses and preventing unrelated logic changes.
51
+
52
+ ---
53
+
54
+ ## 📜 Prompt-as-Code Architecture
55
+
56
+ Synara strictly enforces that **all Agent definitions must live in Markdown files**, not hardcoded in Python. This guarantees modularity, easy maintenance, and protects the system from architectural regression.
57
+
58
+ ### Dynamic Agent Loading
59
+ When an agent is requested, the system uses the `markdown_loader.py` module to dynamically parse the Markdown files located in `.synara/agents/*.md`.
60
+
61
+ Each file must contain a **YAML Frontmatter** block:
62
+ ```yaml
63
+ ---
64
+ name: code-reviewer
65
+ description: Expert code reviewer specializing in SOLID principles and clean architecture.
66
+ model: models/gemini-3.1-pro-high
67
+ tools:
68
+ - view_file
69
+ - run_command
70
+ ---
71
+ ```
72
+ The content below the frontmatter serves as the Agent's specific System Prompt.
73
+
74
+ ### AST Guardrails
75
+ To prevent future developers or AI systems from regressing into a hardcoded architecture, the project utilizes strict AST (Abstract Syntax Tree) unit tests (`tests/test_architecture_guardrails.py`). If any large string constant (prompt) is detected directly inside the Python agent controllers, the CI pipeline will instantly fail.
@@ -0,0 +1,37 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "synara-ai"
7
+ version = "0.1.0"
8
+ description = "Synara reusable CLI tool"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ authors = [
12
+ { name = "DamianosDev", email = "developer@example.com" }
13
+ ]
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "License :: OSI Approved :: Apache Software License",
17
+ "Operating System :: OS Independent",
18
+ "Environment :: Console",
19
+ ]
20
+ dependencies = [
21
+ "typer>=0.12.0",
22
+ "rich>=13.0.0",
23
+ "pydantic>=2.0.0",
24
+ ]
25
+
26
+ [project.urls]
27
+ "Homepage" = "https://github.com/DamianosDev/harness_engineers"
28
+
29
+ [project.scripts]
30
+ synara-ai = "synara.cli.main:app"
31
+
32
+ [tool.setuptools.packages.find]
33
+ where = ["src"]
34
+ include = ["synara*"]
35
+
36
+ [tool.setuptools.package-data]
37
+ "synara.templates" = ["**/*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
File without changes
File without changes
@@ -0,0 +1,45 @@
1
+ import sys
2
+ from synara.core.base_agent import SynaraAgentBuilder
3
+ from synara.core.markdown_loader import load_agent_from_markdown
4
+
5
+ _AGENTS = {
6
+ "create_context_compression_agent": ("Context Compression Agent", "models/gemini-3.5-flash-low"),
7
+ "create_synara_governance_agent": ("Synara Governance Agent", "models/claude-sonnet-4.6-thinking"),
8
+ "create_knowledge_retrieval_agent": ("Knowledge Retrieval Agent", "models/gemini-3.5-flash-medium"),
9
+ "create_memory_agent": ("Memory Agent", "models/gemini-3.5-flash-low"),
10
+ "create_adr_agent": ("Architecture Decision Record (ADR) Agent", "models/claude-sonnet-4.6-thinking"),
11
+ "create_dependency_review_agent": ("Dependency Review Agent", "models/gemini-3.5-flash-medium"),
12
+ "create_git_intelligence_agent": ("Git Intelligence Agent", "models/gemini-3.5-flash-medium"),
13
+ "create_root_cause_analysis_agent": ("Root Cause Analysis (RCA) Agent", "models/claude-opus-4.6-thinking"),
14
+ "create_release_manager_agent": ("Release Manager Agent", "models/claude-opus-4.6-thinking"),
15
+ "create_device_coverage_agent": ("Device Coverage Agent", "models/gemini-3.5-flash-low"),
16
+ "create_prompt_security_agent": ("Prompt Security Agent", "models/claude-sonnet-4.6-thinking"),
17
+ "create_cost_optimization_agent": ("Cost Optimization Agent", "models/gemini-3.5-flash-low"),
18
+ "create_observability_agent": ("Observability Agent", "models/gemini-3.5-flash-medium"),
19
+ "create_tool_execution_agent": ("Tool Execution Agent", "models/gemini-3.1-pro-high"),
20
+ "create_tool_permission_agent": ("Tool Permission Agent", "models/gemini-3.5-flash-medium"),
21
+ "create_agent_communication_protocol_agent": ("Agent Communication Protocol Agent", "models/gemini-3.5-flash-medium"),
22
+ "create_confidence_evaluation_agent": ("Confidence Evaluation Agent", "models/gpt-5.4"),
23
+ "create_failure_recovery_agent": ("Failure Recovery Agent", "models/gemini-3.1-pro-high"),
24
+ "create_coding_standards_agent": ("Coding Standards Agent", "models/gemini-3.5-flash-high"),
25
+ "create_architecture_compliance_agent": ("Architecture Compliance Agent", "models/claude-sonnet-4.6-thinking"),
26
+ "create_knowledge_gap_agent": ("Knowledge Gap Agent", "models/gemini-3.1-pro-high"),
27
+ "create_production_incident_agent": ("Production Incident Agent", "models/claude-opus-4.6-thinking"),
28
+ "create_learning_feedback_agent": ("Learning & Feedback Agent", "models/gemini-3.5-flash-medium"),
29
+ "create_enterprise_governance_agent": ("Enterprise Governance Agent", "models/claude-opus-4.6-thinking"),
30
+ }
31
+
32
+ _data_cache = {}
33
+
34
+ def __getattr__(name):
35
+ if name in _AGENTS:
36
+ agent_name, model = _AGENTS[name]
37
+ def factory():
38
+ if name not in _data_cache:
39
+ _data_cache[name] = load_agent_from_markdown(f".synara/agents/{name}.md", agent_name)
40
+ data = _data_cache[name]
41
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=model)
42
+ factory.__name__ = name
43
+ globals()[name] = factory
44
+ return factory
45
+ raise AttributeError(f"module {__name__} has no attribute {name}")
@@ -0,0 +1,33 @@
1
+ import sys
2
+ from synara.core.base_agent import SynaraAgentBuilder
3
+ from synara.core.markdown_loader import load_agent_from_markdown
4
+
5
+ _AGENTS = {
6
+ "create_api_design_agent": ("API Design Agent", "models/gemini-3.1-pro-high"),
7
+ "create_database_schema_agent": ("Database Schema Agent", "models/gemini-3.1-pro-high"),
8
+ "create_nestjs_express_coding_agent": ("NestJS / Express Coding Agent", "models/gemini-3.1-pro-high"),
9
+ "create_authentication_authorization_agent": ("Authentication / Authorization Agent", "models/claude-sonnet-4.6-thinking"),
10
+ "create_business_logic_agent": ("Business Logic Agent", "models/gemini-3.1-pro-high"),
11
+ "create_validation_dto_agent": ("Validation / DTO Agent", "models/gemini-3.1-pro-low"),
12
+ "create_swagger_openapi_agent": ("Swagger / OpenAPI Agent", "models/gemini-3.5-flash-medium"),
13
+ "create_unit_test_agent": ("Unit Test Agent", "models/gemini-3.1-pro-low"),
14
+ "create_integration_test_agent": ("Integration Test Agent", "models/gemini-3.1-pro-high"),
15
+ "create_security_scan_agent": ("Security Scan Agent", "models/claude-sonnet-4.6-thinking"),
16
+ "create_performance_load_test_agent": ("Performance / Load Test Agent", "models/gpt-5.4"),
17
+ "create_logging_monitoring_agent": ("Logging / Monitoring Agent", "models/gemini-3.5-flash-low"),
18
+ }
19
+
20
+ _data_cache = {}
21
+
22
+ def __getattr__(name):
23
+ if name in _AGENTS:
24
+ agent_name, model = _AGENTS[name]
25
+ def factory():
26
+ if name not in _data_cache:
27
+ _data_cache[name] = load_agent_from_markdown(f".synara/agents/{name}.md", agent_name)
28
+ data = _data_cache[name]
29
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=model)
30
+ factory.__name__ = name
31
+ globals()[name] = factory
32
+ return factory
33
+ raise AttributeError(f"module {__name__} has no attribute {name}")
@@ -0,0 +1,32 @@
1
+ import sys
2
+ from synara.core.base_agent import SynaraAgentBuilder
3
+ from synara.core.markdown_loader import load_agent_from_markdown
4
+
5
+ _AGENTS = {
6
+ "create_ui_ux_analyzer_agent": ("UI/UX Analyzer Agent", "models/gemini-3.5-flash-medium"),
7
+ "create_react_nextjs_coding_agent": ("React / Next.js Coding Agent", "models/gemini-3.1-pro-high"),
8
+ "create_component_generator_agent": ("Component Generator Agent", "models/gemini-3.1-pro-high"),
9
+ "create_state_management_agent": ("State Management Agent", "models/gemini-3.1-pro-high"),
10
+ "create_form_validation_agent": ("Form Validation Agent", "models/gemini-3.1-pro-low"),
11
+ "create_api_integration_agent": ("API Integration Agent", "models/gemini-3.1-pro-high"),
12
+ "create_accessibility_review_agent": ("Accessibility Review Agent", "models/gemini-3.5-flash-medium"),
13
+ "create_responsive_layout_agent": ("Responsive Layout Agent", "models/gemini-3.1-pro-low"),
14
+ "create_frontend_unit_test_agent": ("Frontend Unit Test Agent", "models/gemini-3.1-pro-low"),
15
+ "create_playwright_e2e_agent": ("Playwright E2E Agent", "models/gemini-3.1-pro-low"),
16
+ "create_performance_review_agent": ("Performance Review Agent", "models/gemini-3.5-flash-high"),
17
+ }
18
+
19
+ _data_cache = {}
20
+
21
+ def __getattr__(name):
22
+ if name in _AGENTS:
23
+ agent_name, model = _AGENTS[name]
24
+ def factory():
25
+ if name not in _data_cache:
26
+ _data_cache[name] = load_agent_from_markdown(f".synara/agents/{name}.md", agent_name)
27
+ data = _data_cache[name]
28
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=model)
29
+ factory.__name__ = name
30
+ globals()[name] = factory
31
+ return factory
32
+ raise AttributeError(f"module {__name__} has no attribute {name}")
@@ -0,0 +1,35 @@
1
+ import sys
2
+ from synara.core.base_agent import SynaraAgentBuilder
3
+ from synara.core.markdown_loader import load_agent_from_markdown
4
+
5
+ _AGENTS = {
6
+ "create_requirement_analyzer_agent": ("Requirement Analyzer Agent", "models/gemini-2.5-pro"),
7
+ "create_system_architect_agent": ("System Architect Agent", "models/gemini-2.5-pro"),
8
+ "create_fullstack_coding_agent": ("Full-stack Coding Agent", "models/gemini-2.5-pro"),
9
+ "create_api_contract_agent": ("API Contract Agent", "models/gemini-3.1-pro-high"),
10
+ "create_database_design_agent": ("Database Design Agent", "models/gemini-3.1-pro-high"),
11
+ "create_integration_agent": ("Integration Agent", "models/gemini-3.1-pro-high"),
12
+ "create_test_case_generator_agent": ("Test Case Generator Agent", "models/gemini-3.1-pro-low"),
13
+ "create_code_review_agent": ("Code Review Agent", "models/claude-sonnet-4.6-thinking"),
14
+ "create_security_review_agent": ("Security Review Agent", "models/claude-sonnet-4.6-thinking"),
15
+ "create_devops_cicd_agent": ("DevOps / CI-CD Agent", "models/gemini-3.5-flash-medium"),
16
+ "create_documentation_agent": ("Documentation Agent", "models/gemini-3.5-flash-medium"),
17
+ "create_pr_creator_agent": ("PR Creator Agent", "models/gemini-3.5-flash-low"),
18
+ "create_migration_agent": ("Migration Agent", "models/gemini-3.1-pro-high"),
19
+ "create_data_analytics_agent": ("Data / Analytics Agent", "models/gpt-5.4"),
20
+ }
21
+
22
+ _data_cache = {}
23
+
24
+ def __getattr__(name):
25
+ if name in _AGENTS:
26
+ agent_name, model = _AGENTS[name]
27
+ def factory():
28
+ if name not in _data_cache:
29
+ _data_cache[name] = load_agent_from_markdown(f".synara/agents/{name}.md", agent_name)
30
+ data = _data_cache[name]
31
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=model)
32
+ factory.__name__ = name
33
+ globals()[name] = factory
34
+ return factory
35
+ raise AttributeError(f"module {__name__} has no attribute {name}")
@@ -0,0 +1,29 @@
1
+ import sys
2
+ import os
3
+ import glob
4
+ from synara.core.base_agent import SynaraAgentBuilder
5
+ from synara.core.markdown_loader import load_agent_from_markdown
6
+
7
+ _AGENTS = {}
8
+
9
+ legacy_files = glob.glob('.synara/agents/*.md')
10
+ for filepath in legacy_files:
11
+ basename = os.path.basename(filepath)
12
+ slug = basename.replace('.md', '')
13
+ func_name = f"create_{slug.replace('-', '_')}_agent"
14
+ _AGENTS[func_name] = (filepath, slug)
15
+
16
+ _data_cache = {}
17
+
18
+ def __getattr__(name):
19
+ if name in _AGENTS:
20
+ filepath, slug = _AGENTS[name]
21
+ def factory():
22
+ if name not in _data_cache:
23
+ _data_cache[name] = load_agent_from_markdown(filepath)
24
+ data = _data_cache[name]
25
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=data['model'])
26
+ factory.__name__ = name
27
+ globals()[name] = factory
28
+ return factory
29
+ raise AttributeError(f"module {__name__} has no attribute {name}")
@@ -0,0 +1,34 @@
1
+ import sys
2
+ from synara.core.base_agent import SynaraAgentBuilder
3
+ from synara.core.markdown_loader import load_agent_from_markdown
4
+
5
+ _AGENTS = {
6
+ "create_react_native_expo_coding_agent": ("React Native / Expo Coding Agent", "models/gemini-3.1-pro-high"),
7
+ "create_native_module_agent": ("Native Module Agent", "models/gemini-3.1-pro-high"),
8
+ "create_navigation_agent": ("Navigation Agent", "models/gemini-3.1-pro-low"),
9
+ "create_offline_storage_agent": ("Offline Storage Agent", "models/gemini-3.1-pro-high"),
10
+ "create_push_notification_agent": ("Push Notification Agent", "models/gemini-3.1-pro-low"),
11
+ "create_permission_handling_agent": ("Permission Handling Agent", "models/gemini-3.1-pro-low"),
12
+ "create_camera_location_nfc_agent": ("Camera / Location / NFC Agent", "models/gemini-3.1-pro-low"),
13
+ "create_mobile_ui_component_agent": ("Mobile UI Component Agent", "models/gemini-3.1-pro-low"),
14
+ "create_detox_maestro_test_agent": ("Detox / Maestro Test Agent", "models/gemini-3.1-pro-low"),
15
+ "create_performance_optimization_agent": ("Performance Optimization Agent", "models/gemini-3.5-flash-high"),
16
+ "create_build_release_agent": ("Build / Release Agent", "models/gemini-3.1-pro-low"),
17
+ "create_app_store_play_store_checklist_agent": ("App Store / Play Store Checklist Agent", "models/gpt-5.4"),
18
+ "create_mobile_automation_engineer_agent": ("Mobile Automation Engineer Agent", "models/gemini-3.1-pro-high"),
19
+ }
20
+
21
+ _data_cache = {}
22
+
23
+ def __getattr__(name):
24
+ if name in _AGENTS:
25
+ agent_name, model = _AGENTS[name]
26
+ def factory():
27
+ if name not in _data_cache:
28
+ _data_cache[name] = load_agent_from_markdown(f".synara/agents/{name}.md", agent_name)
29
+ data = _data_cache[name]
30
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=model)
31
+ factory.__name__ = name
32
+ globals()[name] = factory
33
+ return factory
34
+ raise AttributeError(f"module {__name__} has no attribute {name}")
@@ -0,0 +1,31 @@
1
+ import sys
2
+ from synara.core.base_agent import SynaraAgentBuilder
3
+ from synara.core.markdown_loader import load_agent_from_markdown
4
+
5
+ _AGENTS = {
6
+ "create_requirement_review_agent": ("Requirement Review Agent", "models/gemini-3.1-pro-high"),
7
+ "create_test_scenario_agent": ("Test Scenario Agent", "models/gemini-3.1-pro-low"),
8
+ "create_test_case_generator_agent": ("QA Test Case Generator Agent", "models/gemini-3.1-pro-low"),
9
+ "create_api_test_agent": ("API Test Agent", "models/gemini-3.1-pro-low"),
10
+ "create_web_e2e_test_agent": ("Web E2E Test Agent", "models/gemini-3.1-pro-low"),
11
+ "create_mobile_e2e_test_agent": ("Mobile E2E Test Agent", "models/gemini-3.1-pro-low"),
12
+ "create_regression_test_agent": ("Regression Test Agent", "models/gemini-3.1-pro-low"),
13
+ "create_defect_analysis_agent": ("Defect Analysis Agent", "models/claude-sonnet-4.6-thinking"),
14
+ "create_test_report_agent": ("Test Report Agent", "models/gemini-3.5-flash-low"),
15
+ "create_risk_analysis_agent": ("Risk Analysis Agent", "models/claude-opus-4.6-thinking"),
16
+ }
17
+
18
+ _data_cache = {}
19
+
20
+ def __getattr__(name):
21
+ if name in _AGENTS:
22
+ agent_name, model = _AGENTS[name]
23
+ def factory():
24
+ if name not in _data_cache:
25
+ _data_cache[name] = load_agent_from_markdown(f".synara/agents/{name}.md", agent_name)
26
+ data = _data_cache[name]
27
+ return SynaraAgentBuilder.build(data['identity'], data['thinking_process'], data['constraints'], model=model)
28
+ factory.__name__ = name
29
+ globals()[name] = factory
30
+ return factory
31
+ raise AttributeError(f"module {__name__} has no attribute {name}")