Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
5716154
Add Terraform Drift Detector project (RAG + ReAct)
vibhatsrivastava May 23, 2026
a7edb82
Add Terraform test infrastructure for drift tests
vibhatsrivastava May 23, 2026
ac00d82
Add GitHub & Teams integration for drift alerts
vibhatsrivastava May 24, 2026
3f6ce54
Add Terraform Drift Detector Phase 3 & 4 plan
vibhatsrivastava May 24, 2026
0b08d78
Add end-to-end workflow diagram to README
vibhatsrivastava May 24, 2026
0114965
Add AWX deployment docs and workflows
vibhatsrivastava May 24, 2026
5c3f029
Update copilot-implement.yml
vibhatsrivastava May 24, 2026
cf619d4
Refactor integrations imports; remove unused Path
vibhatsrivastava May 24, 2026
113cd18
tests: remove unused Path import and tidy whitespace
vibhatsrivastava May 24, 2026
14b66c5
Remove unused imports and minor cleanups
vibhatsrivastava May 24, 2026
1dc859f
Add noqa to imports, fix bare except, update test
vibhatsrivastava May 24, 2026
4dc74e0
Initial plan
Copilot May 24, 2026
3953fb2
fix: add terraform drift detector import paths in test conftest
Copilot May 24, 2026
1394d5f
fix: configure pytest pythonpath for terraform drift detector imports
Copilot May 24, 2026
d465eac
Merge pull request #33 from vibhatsrivastava/copilot/fix-test-workflo…
vibhatsrivastava May 24, 2026
7ca7a48
Initial plan
Copilot May 24, 2026
f3dcfab
fix(terraform-drift-detector): resolve CI regressions and restore cov…
Copilot May 24, 2026
5f176fb
chore(terraform-drift-detector): incorporate validation feedback
Copilot May 24, 2026
021e3ed
Merge pull request #34 from vibhatsrivastava/copilot/fix-regressions-…
vibhatsrivastava May 24, 2026
284ce9f
Add monorepo root to sys.path for common imports
vibhatsrivastava May 24, 2026
8cda21b
Merge branch 'dev' of https://github.com/vibhatsrivastava/Agentic_AI_…
vibhatsrivastava May 24, 2026
8fe3dbc
Add unstructured dep and mark ami_id sensitive
vibhatsrivastava May 24, 2026
ea55c17
Update variables.tf
vibhatsrivastava May 25, 2026
7ffbd88
Add SSM support and enhance drift detection
vibhatsrivastava May 25, 2026
28d14b9
Fix: sanitize truncated JSON in compare_resources; optional imports; …
vibhatsrivastava May 26, 2026
8ed072e
Add Langfuse callbacks and Windows path fix
vibhatsrivastava May 26, 2026
202aa2a
Merge pull request #37 from vibhatsrivastava/fix/sanitize-compare-res…
vibhatsrivastava May 26, 2026
a562aad
Update chroma.sqlite3
vibhatsrivastava May 26, 2026
46c5ed8
Merge branch 'dev' of https://github.com/vibhatsrivastava/Agentic_AI_…
vibhatsrivastava May 26, 2026
8901457
Enhance JSON parsing and resiliency in diff tools
vibhatsrivastava May 26, 2026
758ec6a
Improve drift detector robustness and performance
vibhatsrivastava May 26, 2026
1a25237
Optimize RAG/caching/prompt; add tracing docs
vibhatsrivastava Jun 1, 2026
678bb0a
Add tracing fallbacks, timing, and credential docs
vibhatsrivastava Jun 1, 2026
1f470aa
Enhance drift recovery, parsing, and GitHub validation
vibhatsrivastava Jun 1, 2026
b4f39a5
Add Teams fallback and GitHub issue scan
vibhatsrivastava Jun 1, 2026
b687b3c
Update Chroma vector store database
vibhatsrivastava Jun 1, 2026
3d56c76
Refactor drift detection tests for clarity and consistency; standardi…
vibhatsrivastava Jun 5, 2026
ce5844b
Add remediation plan generation and recovery handling in fix mode
vibhatsrivastava Jun 5, 2026
3a637f9
Add validation script and configuration checklist for setup verification
vibhatsrivastava Jun 6, 2026
7f1d8a9
Enhance GitHub issue creation with recommendations for resolving drift
vibhatsrivastava Jun 6, 2026
30524bb
Optimize size and robustness for drift detector
vibhatsrivastava Jun 6, 2026
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
23 changes: 19 additions & 4 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# GitHub Copilot Workspace Instructions

> Applies to all files in this repository.
> Prefer code-first responses with concise explanations, and always include clear docstrings where required.

---

Expand Down Expand Up @@ -105,6 +106,14 @@ Agentic_AI_Development_Framework/
- ✅ Clear separation: common variables vs. integration variables
- ✅ Backward compatible: existing projects continue to work

**Credential Resolution Order:**

1. **Vault** (if `VAULT_ENABLED=true`): retrieve secrets from configured Vault path.
2. **Project `.env`**: use project-level integration variables when present.
3. **Root `.env`**: use shared defaults and fallback values.

If `load_project_env()` finds no `.env` at the repo root, it must raise an `EnvironmentError` with the message: `"Root .env not found. Copy .env.example to .env and configure required variables."`

**Optional: HashiCorp Vault Integration**

For teams with multiple developers, use **HashiCorp Vault** for centralized secret management:
Expand All @@ -117,12 +126,12 @@ For teams with multiple developers, use **HashiCorp Vault** for centralized secr
| `VAULT_SECRET_PATH` | Secret path (default: `ollama`) | `ollama` |
| `VAULT_MOUNT_POINT` | KV mount point (default: `secret`) | `secret` |

When `VAULT_ENABLED=true`, `OLLAMA_API_KEY` is retrieved from Vault with automatic fallback to `.env` if unreachable. See [docs/vault.md](../docs/vault.md) for setup instructions.
When `VAULT_ENABLED=true`, `OLLAMA_API_KEY` is retrieved following the **Credential Resolution Order** above. See [docs/vault.md](../docs/vault.md) for setup instructions.

**Credential Retrieval Strategy:**
- `common/llm_factory.py` uses `common/vault.py::get_secret()` for API key retrieval
- **Vault-first**: Tries Vault if enabled; logs success/failure
- **Automatic fallback**: Uses `.env` if Vault unreachable or key not found
- **Automatic fallback**: Uses environment files per **Credential Resolution Order**
- **Zero code changes**: Projects use `get_llm()` as before — credential source is transparent
- **Backward compatible**: Vault disabled by default; existing workflows unchanged

Expand All @@ -140,7 +149,7 @@ Automatic LLM tracing, cost tracking, and performance analytics via **Langfuse**
**How it works:**
- Tracing is **always-on by default** — set `LANGFUSE_ENABLED=false` to disable globally
- Callbacks are automatically attached to all LLM instances (`get_llm()`, `get_chat_llm()`, `get_embeddings()`)
- Supports Vault integration: keys fetched from Vault path "langfuse" with `.env` fallback
- Supports Vault integration: keys are resolved using the **Credential Resolution Order** (Vault path "langfuse" when enabled)
- Graceful degradation: LLMs work normally if Langfuse unavailable or keys missing
- Zero code changes: existing projects automatically get tracing after configuring `.env`

Expand Down Expand Up @@ -239,6 +248,12 @@ answer = result["messages"][-1].content
- Use typed parameters; avoid `**kwargs`
- Return a `str` for simple tools; use Pydantic schemas for complex inputs

### When Modifying `common/`

- Add or update tests in `common/tests/` for every behavior change.
- Ensure coverage for affected modules remains >= 75%.
- Add any new shared dependency to root `requirements-base.txt`.

### Project Structure for New Projects

```
Expand Down Expand Up @@ -373,7 +388,7 @@ python src/main.py
- **`common/` import errors** — The project venv must have `ai-agent-common` installed. Run `uv pip install -e ./common` from the repo root targeting the project venv, or re-scaffold using `ai-agent-builder new-project`
- **Do NOT add `sys.path.insert`** — `common/` is a proper installable package; path hacks are no longer needed or used
- **`.env` not found** — `llm_factory.py` calls `load_project_env()` which searches upward; ensure `.env` exists at repo root
- **PR tests failing with ImportError** — The CI workflow installs all project `requirements.txt` files via a loop. If you added a new import, ensure it's listed in your project's `requirements.txt`. For dependencies used by 3+ projects, add to root `requirements-base.txt`. See [Testing Strategy](../docs/TESTING_STRATEGY.md#dependency-management-in-ci) for details.
- **PR tests failing with ImportError** — The CI workflow installs all project `requirements.txt` files via a loop. If you added a new import, ensure it's listed in your project's `requirements.txt`. If a dependency is used by 3 or more existing projects at the time of the PR, move it to root `requirements-base.txt`. Do not add it preemptively. See [Testing Strategy](../docs/TESTING_STRATEGY.md#dependency-management-in-ci) for details.
- **Project `.env` usage** — Integration-specific projects (GitHub, Redis, etc.) MAY have a project `.env` file for integration variables only. Common variables (OLLAMA_*, VAULT_*) always live in root `.env`. Simple projects use only root `.env`. Projects automatically load both via `load_project_env()` from `common.utils`.
- **Wrong LLM class** — Use `get_chat_llm()` (not `get_llm()`) for agents and LangGraph nodes; `OllamaLLM` does not support tool calling
- **Model not available** — Run `ollama list` to see downloaded models; run `ollama pull <model>` if missing
Expand Down
Loading
Loading