diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml index 9c1907a..11e325e 100644 --- a/.github/workflows/daily-build.yml +++ b/.github/workflows/daily-build.yml @@ -15,17 +15,12 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest] - defaults: - run: - working-directory: agentic-pipelines steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - with: - workspaces: agentic-pipelines - name: Build run: cargo build --release --verbose @@ -36,5 +31,5 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v4 with: - name: agentic-pipelines-${{ runner.os == 'Windows' && 'win' || 'lin' }} - path: agentic-pipelines/target/release/agentic-pipelines${{ runner.os == 'Windows' && '.exe' || '' }} + name: ado-aw-${{ runner.os == 'Windows' && 'win' || 'lin' }} + path: target/release/ado-aw${{ runner.os == 'Windows' && '.exe' || '' }} diff --git a/.github/workflows/doc-freshness-check.md b/.github/workflows/doc-freshness-check.md index 3f3e342..b6f232f 100644 --- a/.github/workflows/doc-freshness-check.md +++ b/.github/workflows/doc-freshness-check.md @@ -18,7 +18,7 @@ safe-outputs: # Documentation Freshness Check -You are a technical documentation auditor for the **agentic-pipelines** project — a Rust CLI compiler that transforms markdown agent definitions into Azure DevOps pipeline YAML. +You are a technical documentation auditor for the **ado-aw** project — a Rust CLI compiler that transforms markdown agent definitions into Azure DevOps pipeline YAML. ## Your Task @@ -31,8 +31,8 @@ Audit the project documentation for accuracy and completeness by comparing docs Compare the directory tree in `.github/copilot-instructions.md` against actual files: ```bash -find agentic-pipelines/src -type f -name '*.rs' | sort -find agentic-pipelines/templates -type f | sort +find src -type f -name '*.rs' | sort +find templates -type f | sort ``` Look for: @@ -42,7 +42,7 @@ Look for: ### 2. CLI Commands -Extract the actual CLI commands from `agentic-pipelines/src/main.rs` (look at the `Commands` enum with clap derive) and compare against documented commands in `.github/copilot-instructions.md`. +Extract the actual CLI commands from `src/main.rs` (look at the `Commands` enum with clap derive) and compare against documented commands in `.github/copilot-instructions.md`. Check: - All subcommands are documented @@ -51,7 +51,7 @@ Check: ### 3. Front Matter Fields -Compare the `FrontMatter` struct in `agentic-pipelines/src/compile/types.rs` against the documented fields: +Compare the `FrontMatter` struct in `src/compile/types.rs` against the documented fields: - Are all struct fields documented? - Do documented defaults match `#[serde(default)]` values? @@ -63,8 +63,8 @@ Compare the `FrontMatter` struct in `agentic-pipelines/src/compile/types.rs` aga Scan template files for markers: ```bash -grep -oP '\{\{[^}]+\}\}' agentic-pipelines/templates/base.yml -grep -oP '\{\{[^}]+\}\}' agentic-pipelines/templates/1es-base.yml +grep -oP '\{\{[^}]+\}\}' templates/base.yml +grep -oP '\{\{[^}]+\}\}' templates/1es-base.yml ``` Compare against documented markers in `.github/copilot-instructions.md`. Check for: @@ -74,7 +74,7 @@ Compare against documented markers in `.github/copilot-instructions.md`. Check f ### 5. Safe Output Tools -Compare tools defined in `agentic-pipelines/src/tools/` against what's documented: +Compare tools defined in `src/tools/` against what's documented: - Are all tools documented with correct parameters? - Do configuration options match the actual implementation? diff --git a/.github/workflows/rust-pr-reviewer.lock.yml b/.github/workflows/rust-pr-reviewer.lock.yml index cd27154..f9451b2 100644 --- a/.github/workflows/rust-pr-reviewer.lock.yml +++ b/.github/workflows/rust-pr-reviewer.lock.yml @@ -23,13 +23,17 @@ # # Reviews Rust code changes for quality, error handling, security, and project conventions # -# gh-aw-metadata: {"schema_version":"v1","frontmatter_hash":"c324a942f4bdaddc1a26cdbfeb1ce8d40b351c155cf916ca738ea6c337f13e41","compiler_version":"v0.53.6"} +# gh-aw-metadata: {"schema_version":"v1","frontmatter_hash":"3aa25d90e182fc3fb438edf4938ea3ef1ee7ef0057797112375806b7519b1a4c","compiler_version":"v0.53.6"} name: "Rust PR Reviewer" "on": pull_request: paths: - - agentic-pipelines/** + - src/** + - tests/** + - templates/** + - Cargo.toml + - Cargo.lock types: - opened - synchronize diff --git a/.github/workflows/rust-pr-reviewer.md b/.github/workflows/rust-pr-reviewer.md index 5f0bf21..b6e160b 100644 --- a/.github/workflows/rust-pr-reviewer.md +++ b/.github/workflows/rust-pr-reviewer.md @@ -3,7 +3,11 @@ on: pull_request: types: [opened, synchronize] paths: - - "agentic-pipelines/**" + - "src/**" + - "tests/**" + - "templates/**" + - "Cargo.toml" + - "Cargo.lock" description: Reviews Rust code changes for quality, error handling, security, and project conventions permissions: contents: read @@ -21,7 +25,7 @@ safe-outputs: # Rust PR Reviewer -You are a senior Rust engineer reviewing pull requests for the **agentic-pipelines** compiler — a CLI tool that compiles markdown agent definitions into Azure DevOps pipeline YAML. +You are a senior Rust engineer reviewing pull requests for the **ado-aw** compiler — a CLI tool that compiles markdown agent definitions into Azure DevOps pipeline YAML. ## Your Review Focus diff --git a/.github/workflows/rust-tests.yml b/.github/workflows/rust-tests.yml index 7ed14fa..bb80704 100644 --- a/.github/workflows/rust-tests.yml +++ b/.github/workflows/rust-tests.yml @@ -3,7 +3,11 @@ name: Rust Tests on: pull_request: paths: - - "agentic-pipelines/**" + - "src/**" + - "tests/**" + - "templates/**" + - "Cargo.toml" + - "Cargo.lock" env: CARGO_TERM_COLOR: always @@ -12,17 +16,12 @@ jobs: test: name: Build & Test runs-on: ubuntu-latest - defaults: - run: - working-directory: agentic-pipelines steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - with: - workspaces: agentic-pipelines - name: Build run: cargo build --verbose diff --git a/.github/workflows/test-gap-finder.md b/.github/workflows/test-gap-finder.md index 9b0f82a..837cd80 100644 --- a/.github/workflows/test-gap-finder.md +++ b/.github/workflows/test-gap-finder.md @@ -19,7 +19,7 @@ safe-outputs: # Test Gap Finder -You are a test engineering specialist for the **agentic-pipelines** Rust project — a CLI compiler that transforms markdown agent definitions into Azure DevOps pipeline YAML. +You are a test engineering specialist for the **ado-aw** Rust project — a CLI compiler that transforms markdown agent definitions into Azure DevOps pipeline YAML. ## Your Task @@ -37,7 +37,7 @@ cat /tmp/gh-aw/cache-memory/test-gap-state.json 2>/dev/null || echo "No previous ## Step 2: Build and Run Tests ```bash -cd agentic-pipelines +# Project is at repo root cargo test 2>&1 cargo test -- --list 2>&1 ``` @@ -59,10 +59,10 @@ For each source file: ```bash # Count public functions -grep -c 'pub fn\|pub async fn' agentic-pipelines/src/.rs +grep -c 'pub fn\|pub async fn' src/.rs # Count test functions -grep -c '#\[test\]' agentic-pipelines/src/.rs +grep -c '#\[test\]' src/.rs ``` ### What Constitutes a Gap diff --git a/.gitignore b/.gitignore index 28f17cf..f16dd9e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ target -agentic-pipelines/examples/sample-agent.yml +examples/sample-agent.yml diff --git a/AGENTS.md b/AGENTS.md index c1c02b6..d466053 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ This repository contains a compiler for Azure DevOps pipelines that transforms n ### Purpose -The `agentic-pipelines` compiler enables users to write pipeline definitions in a human-friendly markdown format with YAML front matter, which gets compiled into proper Azure DevOps YAML pipeline definitions. This approach: +The `ado-aw` compiler enables users to write pipeline definitions in a human-friendly markdown format with YAML front matter, which gets compiled into proper Azure DevOps YAML pipeline definitions. This approach: - Makes pipeline authoring more accessible through natural language - Enables AI agents to work safely in network-isolated sandboxes (via OneBranch) @@ -18,44 +18,43 @@ Alongside the correctly generated pipeline yaml, an agent file is generated from ### Architecture ``` -├── agentic-pipelines/ # Rust CLI compiler -│ ├── src/ -│ │ ├── main.rs # Entry point with clap CLI -│ │ ├── allowed_hosts.rs # Core network allowlist definitions -│ │ ├── compile/ # Pipeline compilation module -│ │ │ ├── mod.rs # Module entry point and Compiler trait -│ │ │ ├── common.rs # Shared helpers across targets -│ │ │ ├── standalone.rs # Standalone pipeline compiler -│ │ │ ├── onees.rs # 1ES Pipeline Template compiler -│ │ │ └── types.rs # Front matter grammar and types -│ │ ├── create.rs # Interactive agent creation wizard -│ │ ├── execute.rs # Stage 2 safe output execution -│ │ ├── fuzzy_schedule.rs # Fuzzy schedule parsing -│ │ ├── logging.rs # File-based logging infrastructure -│ │ ├── mcp.rs # SafeOutputs MCP server -│ │ ├── mcp_firewall.rs # MCP Firewall server -│ │ ├── mcp_metadata.rs # Bundled MCP metadata -│ │ ├── ndjson.rs # NDJSON parsing utilities -│ │ ├── proxy.rs # Network proxy implementation -│ │ ├── sanitize.rs # Input sanitization for safe outputs -│ │ └── tools/ # MCP tool implementations -│ │ ├── mod.rs -│ │ ├── create_pr.rs -│ │ ├── create_work_item.rs -│ │ ├── memory.rs -│ │ ├── missing_data.rs -│ │ ├── missing_tool.rs -│ │ ├── noop.rs -│ │ └── result.rs -│ ├── templates/ -│ │ ├── base.yml # Base pipeline template for standalone -│ │ ├── 1es-base.yml # Base pipeline template for 1ES target -│ │ └── threat-analysis.md # Threat detection analysis prompt template -│ ├── mcp-metadata.json # Bundled MCP tool definitions -│ ├── examples/ # Example agent definitions -│ ├── tests/ # Integration tests and fixtures -│ └── Cargo.toml # Rust dependencies -└── README.md # Project documentation +├── src/ +│ ├── main.rs # Entry point with clap CLI +│ ├── allowed_hosts.rs # Core network allowlist definitions +│ ├── compile/ # Pipeline compilation module +│ │ ├── mod.rs # Module entry point and Compiler trait +│ │ ├── common.rs # Shared helpers across targets +│ │ ├── standalone.rs # Standalone pipeline compiler +│ │ ├── onees.rs # 1ES Pipeline Template compiler +│ │ └── types.rs # Front matter grammar and types +│ ├── create.rs # Interactive agent creation wizard +│ ├── execute.rs # Stage 2 safe output execution +│ ├── fuzzy_schedule.rs # Fuzzy schedule parsing +│ ├── logging.rs # File-based logging infrastructure +│ ├── mcp.rs # SafeOutputs MCP server +│ ├── mcp_firewall.rs # MCP Firewall server +│ ├── mcp_metadata.rs # Bundled MCP metadata +│ ├── ndjson.rs # NDJSON parsing utilities +│ ├── proxy.rs # Network proxy implementation +│ ├── sanitize.rs # Input sanitization for safe outputs +│ └── tools/ # MCP tool implementations +│ ├── mod.rs +│ ├── create_pr.rs +│ ├── create_work_item.rs +│ ├── memory.rs +│ ├── missing_data.rs +│ ├── missing_tool.rs +│ ├── noop.rs +│ └── result.rs +├── templates/ +│ ├── base.yml # Base pipeline template for standalone +│ ├── 1es-base.yml # Base pipeline template for 1ES target +│ └── threat-analysis.md # Threat detection analysis prompt template +├── mcp-metadata.json # Bundled MCP tool definitions +├── examples/ # Example agent definitions +├── tests/ # Integration tests and fixtures +├── Cargo.toml # Rust dependencies +└── README.md # Project documentation ``` ## Technology Stack @@ -305,8 +304,8 @@ When using `target: 1es`, the pipeline will extend `1es/1ES.Unofficial.PipelineT The compiler transforms the input into valid Azure DevOps pipeline YAML based on the target platform: -- **Standalone**: Uses `agentic-pipelines/templates/base.yml` -- **1ES**: Uses `agentic-pipelines/templates/1es-base.yml` +- **Standalone**: Uses `templates/base.yml` +- **1ES**: Uses `templates/1es-base.yml` Explicit markings are embedded in these templates that the compiler is allowed to replace e.g. `{{ agency_params }}` denotes parameters which are passed to the agency command line tool. The compiler should not replace sections denoted by `${{ some content }}`. What follows is a mapping of markings to responsibilities (primarily for the standalone template). @@ -821,7 +820,6 @@ Following the gh-aw security model: ```bash # Build the compiler -cd agentic-pipelines cargo build # Run tests @@ -1121,7 +1119,7 @@ This prevents tool name collisions and makes it clear which upstream handles eac ```bash # Start the MCP firewall server -agentic-pipelines mcp-firewall --config /path/to/config.json +ado-aw mcp-firewall --config /path/to/config.json ``` ### Pipeline Integration @@ -1136,7 +1134,7 @@ The firewall config is written to `$(Agent.TempDirectory)/staging/mcp-firewall-c ### Audit Logging -All tool call attempts are logged to the centralized log file at `$HOME/.agentic-pipelines/logs/YYYY-MM-DD.log`: +All tool call attempts are logged to the centralized log file at `$HOME/.ado-aw/logs/YYYY-MM-DD.log`: ``` [2026-01-29T10:15:32Z] [INFO] [firewall] ALLOWED icm:create_incident (args: {"title": "...", "severity": 3}) diff --git a/agentic-pipelines/Cargo.lock b/Cargo.lock similarity index 99% rename from agentic-pipelines/Cargo.lock rename to Cargo.lock index ccbea5f..7415195 100644 --- a/agentic-pipelines/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ version = 4 [[package]] -name = "agentic-pipelines" +name = "ado-aw" version = "0.1.0" dependencies = [ "anyhow", diff --git a/agentic-pipelines/Cargo.toml b/Cargo.toml similarity index 95% rename from agentic-pipelines/Cargo.toml rename to Cargo.toml index e91dc8e..78254e2 100644 --- a/agentic-pipelines/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "agentic-pipelines" +name = "ado-aw" version = "0.1.0" edition = "2024" diff --git a/agentic-pipelines/examples/sample-agent.md b/examples/sample-agent.md similarity index 100% rename from agentic-pipelines/examples/sample-agent.md rename to examples/sample-agent.md diff --git a/agentic-pipelines/mcp-metadata.json b/mcp-metadata.json similarity index 100% rename from agentic-pipelines/mcp-metadata.json rename to mcp-metadata.json diff --git a/agentic-pipelines/src/allowed_hosts.rs b/src/allowed_hosts.rs similarity index 100% rename from agentic-pipelines/src/allowed_hosts.rs rename to src/allowed_hosts.rs diff --git a/agentic-pipelines/src/compile/common.rs b/src/compile/common.rs similarity index 100% rename from agentic-pipelines/src/compile/common.rs rename to src/compile/common.rs diff --git a/agentic-pipelines/src/compile/mod.rs b/src/compile/mod.rs similarity index 100% rename from agentic-pipelines/src/compile/mod.rs rename to src/compile/mod.rs diff --git a/agentic-pipelines/src/compile/onees.rs b/src/compile/onees.rs similarity index 100% rename from agentic-pipelines/src/compile/onees.rs rename to src/compile/onees.rs diff --git a/agentic-pipelines/src/compile/standalone.rs b/src/compile/standalone.rs similarity index 100% rename from agentic-pipelines/src/compile/standalone.rs rename to src/compile/standalone.rs diff --git a/agentic-pipelines/src/compile/types.rs b/src/compile/types.rs similarity index 100% rename from agentic-pipelines/src/compile/types.rs rename to src/compile/types.rs diff --git a/agentic-pipelines/src/create.rs b/src/create.rs similarity index 99% rename from agentic-pipelines/src/create.rs rename to src/create.rs index 1940c40..3cdfd75 100644 --- a/agentic-pipelines/src/create.rs +++ b/src/create.rs @@ -330,7 +330,7 @@ pub async fn create_agent(output_dir: Option) -> Result<()> { println!("\nNext steps:"); println!(" 1. Edit the file to add your agent instructions"); println!( - " 2. Compile with: agentic-pipelines compile {}", + " 2. Compile with: ado-aw compile {}", output_path.display() ); println!(" 3. Commit both the .md and generated .yml files"); diff --git a/agentic-pipelines/src/execute.rs b/src/execute.rs similarity index 100% rename from agentic-pipelines/src/execute.rs rename to src/execute.rs diff --git a/agentic-pipelines/src/fuzzy_schedule.rs b/src/fuzzy_schedule.rs similarity index 100% rename from agentic-pipelines/src/fuzzy_schedule.rs rename to src/fuzzy_schedule.rs diff --git a/agentic-pipelines/src/logging.rs b/src/logging.rs similarity index 93% rename from agentic-pipelines/src/logging.rs rename to src/logging.rs index dce918a..149855f 100644 --- a/agentic-pipelines/src/logging.rs +++ b/src/logging.rs @@ -1,6 +1,6 @@ -//! Centralized file-based logging for agentic-pipelines +//! Centralized file-based logging for ado-aw //! -//! All commands log to `$HOME/.agentic-pipelines/logs/` with daily log files. +//! All commands log to `$HOME/.ado-aw/logs/` with daily log files. //! Each session is marked with timestamp, build ID (if in pipeline), and command name. //! In pipeline environments, these logs are copied to the staging directory for artifact upload. @@ -14,11 +14,11 @@ use std::sync::Mutex; /// Get the standard log directory path /// -/// Returns `$HOME/.agentic-pipelines/logs/` on Unix/macOS -/// Returns `%USERPROFILE%\.agentic-pipelines\logs\` on Windows +/// Returns `$HOME/.ado-aw/logs/` on Unix/macOS +/// Returns `%USERPROFILE%\.ado-aw\logs\` on Windows pub fn log_directory() -> Result { let home = dirs::home_dir().context("Could not determine home directory")?; - Ok(home.join(".agentic-pipelines").join("logs")) + Ok(home.join(".ado-aw").join("logs")) } /// Get the path for today's log file @@ -105,7 +105,7 @@ impl log::Log for FileLogger { /// Initialize file-based logging for a command /// -/// Creates/appends to today's log file at `$HOME/.agentic-pipelines/logs/YYYY-MM-DD.log` +/// Creates/appends to today's log file at `$HOME/.ado-aw/logs/YYYY-MM-DD.log` /// and writes a session marker with build context for correlation. /// /// # Arguments @@ -201,7 +201,7 @@ mod tests { fn test_log_directory() { let dir = log_directory().unwrap(); assert!( - dir.ends_with(".agentic-pipelines/logs") || dir.ends_with(".agentic-pipelines\\logs") + dir.ends_with(".ado-aw/logs") || dir.ends_with(".ado-aw\\logs") ); } diff --git a/agentic-pipelines/src/main.rs b/src/main.rs similarity index 98% rename from agentic-pipelines/src/main.rs rename to src/main.rs index ce55a7f..3c39a58 100644 --- a/agentic-pipelines/src/main.rs +++ b/src/main.rs @@ -107,10 +107,10 @@ async fn main() -> Result<()> { Some(Commands::Execute { .. }) => "execute", Some(Commands::Proxy { .. }) => "proxy", Some(Commands::McpFirewall { .. }) => "mcp-firewall", - None => "agentic-pipelines", + None => "ado-aw", }; - // Initialize file-based logging to $HOME/.agentic-pipelines/logs/{command}.log + // Initialize file-based logging to $HOME/.ado-aw/logs/{command}.log let _log_path = logging::init_logging(command_name, args.debug, args.verbose); if let Some(command) = args.command { diff --git a/agentic-pipelines/src/mcp.rs b/src/mcp.rs similarity index 100% rename from agentic-pipelines/src/mcp.rs rename to src/mcp.rs diff --git a/agentic-pipelines/src/mcp_firewall.rs b/src/mcp_firewall.rs similarity index 100% rename from agentic-pipelines/src/mcp_firewall.rs rename to src/mcp_firewall.rs diff --git a/agentic-pipelines/src/mcp_metadata.rs b/src/mcp_metadata.rs similarity index 100% rename from agentic-pipelines/src/mcp_metadata.rs rename to src/mcp_metadata.rs diff --git a/agentic-pipelines/src/ndjson.rs b/src/ndjson.rs similarity index 100% rename from agentic-pipelines/src/ndjson.rs rename to src/ndjson.rs diff --git a/agentic-pipelines/src/proxy.rs b/src/proxy.rs similarity index 100% rename from agentic-pipelines/src/proxy.rs rename to src/proxy.rs diff --git a/agentic-pipelines/src/sanitize.rs b/src/sanitize.rs similarity index 100% rename from agentic-pipelines/src/sanitize.rs rename to src/sanitize.rs diff --git a/agentic-pipelines/src/tools/create_pr.rs b/src/tools/create_pr.rs similarity index 100% rename from agentic-pipelines/src/tools/create_pr.rs rename to src/tools/create_pr.rs diff --git a/agentic-pipelines/src/tools/create_work_item.rs b/src/tools/create_work_item.rs similarity index 100% rename from agentic-pipelines/src/tools/create_work_item.rs rename to src/tools/create_work_item.rs diff --git a/agentic-pipelines/src/tools/memory.rs b/src/tools/memory.rs similarity index 100% rename from agentic-pipelines/src/tools/memory.rs rename to src/tools/memory.rs diff --git a/agentic-pipelines/src/tools/missing_data.rs b/src/tools/missing_data.rs similarity index 100% rename from agentic-pipelines/src/tools/missing_data.rs rename to src/tools/missing_data.rs diff --git a/agentic-pipelines/src/tools/missing_tool.rs b/src/tools/missing_tool.rs similarity index 100% rename from agentic-pipelines/src/tools/missing_tool.rs rename to src/tools/missing_tool.rs diff --git a/agentic-pipelines/src/tools/mod.rs b/src/tools/mod.rs similarity index 100% rename from agentic-pipelines/src/tools/mod.rs rename to src/tools/mod.rs diff --git a/agentic-pipelines/src/tools/noop.rs b/src/tools/noop.rs similarity index 100% rename from agentic-pipelines/src/tools/noop.rs rename to src/tools/noop.rs diff --git a/agentic-pipelines/src/tools/result.rs b/src/tools/result.rs similarity index 100% rename from agentic-pipelines/src/tools/result.rs rename to src/tools/result.rs diff --git a/agentic-pipelines/templates/1es-base.yml b/templates/1es-base.yml similarity index 97% rename from agentic-pipelines/templates/1es-base.yml rename to templates/1es-base.yml index 12d8124..430370f 100644 --- a/agentic-pipelines/templates/1es-base.yml +++ b/templates/1es-base.yml @@ -66,7 +66,7 @@ extends: targetPath: "$(Pipeline.Workspace)/agentic-pipeline-compiler" - bash: | - AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines" + AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw" chmod +x "$AGENTIC_PIPELINES_PATH" $AGENTIC_PIPELINES_PATH check "{{ source_path }}" "{{ pipeline_path }}" displayName: "Verify pipeline integrity" @@ -75,7 +75,7 @@ extends: mkdir -p "$HOME/.copilot" mkdir -p "$(Agent.TempDirectory)/staging" - AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines" + AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw" chmod +x "$AGENTIC_PIPELINES_PATH" # Generate MCP config for safeoutputs @@ -190,7 +190,7 @@ extends: displayName: "Prepare threat analysis prompt" - bash: | - AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines" + AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw" chmod +x "$AGENTIC_PIPELINES_PATH" # Start the network proxy in background @@ -309,11 +309,11 @@ extends: targetPath: "$(Pipeline.Workspace)/agentic-pipeline-compiler" - bash: | - chmod +x $(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines + chmod +x $(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw echo "##vso[task.prependpath]$(Pipeline.Workspace)/agentic-pipeline-compiler" displayName: Add agentic compiler to path - - bash: agentic-pipelines execute --source "{{ source_path }}" --safe-output-dir "$(Pipeline.Workspace)/analyzed_outputs" + - bash: ado-aw execute --source "{{ source_path }}" --safe-output-dir "$(Pipeline.Workspace)/analyzed_outputs" displayName: Process safe outputs workingDirectory: {{ working_directory }} env: diff --git a/agentic-pipelines/templates/base.yml b/templates/base.yml similarity index 94% rename from agentic-pipelines/templates/base.yml rename to templates/base.yml index 4581cfa..d6fb5ec 100644 --- a/agentic-pipelines/templates/base.yml +++ b/templates/base.yml @@ -65,7 +65,7 @@ jobs: targetPath: "$(Pipeline.Workspace)/agentic-pipeline-compiler" - bash: | - AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines" + AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw" chmod +x "$AGENTIC_PIPELINES_PATH" $AGENTIC_PIPELINES_PATH check "{{ source_path }}" "{{ pipeline_path }}" displayName: "Verify pipeline integrity" @@ -92,7 +92,7 @@ jobs: echo "HOME: $HOME" # Use absolute path since MCP subprocess may not inherit PATH - AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines" + AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw" # Verify the binary exists and is executable ls -la "$AGENTIC_PIPELINES_PATH" @@ -101,8 +101,8 @@ jobs: $AGENTIC_PIPELINES_PATH -h # Copy compiler binary to /tmp so it's accessible inside AWF container - cp "$AGENTIC_PIPELINES_PATH" /tmp/awf-tools/agentic-pipelines - chmod +x /tmp/awf-tools/agentic-pipelines + cp "$AGENTIC_PIPELINES_PATH" /tmp/awf-tools/ado-aw + chmod +x /tmp/awf-tools/ado-aw # Copy MCP firewall config to /tmp cp "$(Agent.TempDirectory)/staging/mcp-firewall-config.json" /tmp/awf-tools/staging/mcp-firewall-config.json @@ -116,7 +116,7 @@ jobs: "tools": [ "*" ], - "command": "/tmp/awf-tools/agentic-pipelines", + "command": "/tmp/awf-tools/ado-aw", "args": ["mcp", "/tmp/awf-tools/staging", "{{ working_directory }}"] }, "mcp-firewall": { @@ -124,7 +124,7 @@ jobs: "tools": [ "*" ], - "command": "/tmp/awf-tools/agentic-pipelines", + "command": "/tmp/awf-tools/ado-aw", "args": ["mcp-firewall", "--config", "/tmp/awf-tools/staging/mcp-firewall-config.json"] } } @@ -254,8 +254,8 @@ jobs: if [ -d ~/.agency/logs ]; then cp -r ~/.agency/logs/* "$(Agent.TempDirectory)/staging/logs/" 2>/dev/null || true fi - if [ -d ~/.agentic-pipelines/logs ]; then - cp -r ~/.agentic-pipelines/logs/* "$(Agent.TempDirectory)/staging/logs/" 2>/dev/null || true + if [ -d ~/.ado-aw/logs ]; then + cp -r ~/.ado-aw/logs/* "$(Agent.TempDirectory)/staging/logs/" 2>/dev/null || true fi echo "Logs copied to $(Agent.TempDirectory)/staging/logs" ls -la "$(Agent.TempDirectory)/staging/logs" 2>/dev/null || echo "No logs found" @@ -356,7 +356,7 @@ jobs: displayName: "Prepare threat analysis prompt" - bash: | - AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines" + AGENTIC_PIPELINES_PATH="$(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw" chmod +x "$AGENTIC_PIPELINES_PATH" displayName: "Setup agentic pipeline compiler" @@ -460,9 +460,9 @@ jobs: mkdir -p "$(Agent.TempDirectory)/analyzed_outputs/logs/agency" cp -r ~/.agency/logs/* "$(Agent.TempDirectory)/analyzed_outputs/logs/agency/" 2>/dev/null || true fi - if [ -d ~/.agentic-pipelines/logs ]; then - mkdir -p "$(Agent.TempDirectory)/analyzed_outputs/logs/agentic-pipelines" - cp -r ~/.agentic-pipelines/logs/* "$(Agent.TempDirectory)/analyzed_outputs/logs/agentic-pipelines/" 2>/dev/null || true + if [ -d ~/.ado-aw/logs ]; then + mkdir -p "$(Agent.TempDirectory)/analyzed_outputs/logs/ado-aw" + cp -r ~/.ado-aw/logs/* "$(Agent.TempDirectory)/analyzed_outputs/logs/ado-aw/" 2>/dev/null || true fi echo "Logs copied to $(Agent.TempDirectory)/analyzed_outputs/logs" ls -laR "$(Agent.TempDirectory)/analyzed_outputs/logs" 2>/dev/null || echo "No logs found" @@ -502,7 +502,7 @@ jobs: - bash: | ls -la "$(Pipeline.Workspace)/agentic-pipeline-compiler" - chmod +x $(Pipeline.Workspace)/agentic-pipeline-compiler/agentic-pipelines + chmod +x $(Pipeline.Workspace)/agentic-pipeline-compiler/ado-aw echo "##vso[task.prependpath]$(Pipeline.Workspace)/agentic-pipeline-compiler" displayName: Add agentic compiler to path @@ -510,7 +510,7 @@ jobs: mkdir -p "$(Agent.TempDirectory)/staging" displayName: "Prepare output directory" - - bash: agentic-pipelines execute --source "{{ source_path }}" --safe-output-dir "$(Pipeline.Workspace)/analyzed_outputs_$(Build.BuildId)" --output-dir "$(Agent.TempDirectory)/staging" + - bash: ado-aw execute --source "{{ source_path }}" --safe-output-dir "$(Pipeline.Workspace)/analyzed_outputs_$(Build.BuildId)" --output-dir "$(Agent.TempDirectory)/staging" displayName: Process safe outputs workingDirectory: {{ working_directory }} env: @@ -527,9 +527,9 @@ jobs: mkdir -p "$(Agent.TempDirectory)/staging/logs/agency" cp -r ~/.agency/logs/* "$(Agent.TempDirectory)/staging/logs/agency/" 2>/dev/null || true fi - if [ -d ~/.agentic-pipelines/logs ]; then - mkdir -p "$(Agent.TempDirectory)/staging/logs/agentic-pipelines" - cp -r ~/.agentic-pipelines/logs/* "$(Agent.TempDirectory)/staging/logs/agentic-pipelines/" 2>/dev/null || true + if [ -d ~/.ado-aw/logs ]; then + mkdir -p "$(Agent.TempDirectory)/staging/logs/ado-aw" + cp -r ~/.ado-aw/logs/* "$(Agent.TempDirectory)/staging/logs/ado-aw/" 2>/dev/null || true fi echo "Logs copied to $(Agent.TempDirectory)/staging/logs" ls -laR "$(Agent.TempDirectory)/staging/logs" 2>/dev/null || echo "No logs found" diff --git a/agentic-pipelines/templates/threat-analysis.md b/templates/threat-analysis.md similarity index 100% rename from agentic-pipelines/templates/threat-analysis.md rename to templates/threat-analysis.md diff --git a/agentic-pipelines/tests/EXAMPLES.md b/tests/EXAMPLES.md similarity index 99% rename from agentic-pipelines/tests/EXAMPLES.md rename to tests/EXAMPLES.md index 8dc1ac2..dfa694b 100644 --- a/agentic-pipelines/tests/EXAMPLES.md +++ b/tests/EXAMPLES.md @@ -1,6 +1,6 @@ # Test Examples and Patterns -This document provides examples of common testing patterns used in the agentic-pipelines test suite. +This document provides examples of common testing patterns used in the ado-aw test suite. ## Basic Unit Test Pattern diff --git a/agentic-pipelines/tests/QUICKREF.md b/tests/QUICKREF.md similarity index 98% rename from agentic-pipelines/tests/QUICKREF.md rename to tests/QUICKREF.md index 8d70695..5b9a023 100644 --- a/agentic-pipelines/tests/QUICKREF.md +++ b/tests/QUICKREF.md @@ -22,7 +22,7 @@ cargo test -- --nocapture ## Test Structure ``` -agentic-pipelines/ +ado-aw/ ├── src/ │ └── main.rs # 18 unit tests (line 337+) └── tests/ diff --git a/agentic-pipelines/tests/README.md b/tests/README.md similarity index 98% rename from agentic-pipelines/tests/README.md rename to tests/README.md index c308937..4b5e3bf 100644 --- a/agentic-pipelines/tests/README.md +++ b/tests/README.md @@ -1,6 +1,6 @@ # Testing Guide -This document describes the test suite for the agentic-pipelines compiler. +This document describes the test suite for the ado-aw compiler. ## Overview diff --git a/agentic-pipelines/tests/SUMMARY.md b/tests/SUMMARY.md similarity index 90% rename from agentic-pipelines/tests/SUMMARY.md rename to tests/SUMMARY.md index 0814d71..bf14ee3 100644 --- a/agentic-pipelines/tests/SUMMARY.md +++ b/tests/SUMMARY.md @@ -2,7 +2,7 @@ ## Overview -This document summarizes the test suite that has been added to the agentic-pipelines compiler project to satisfy the requirements in issue #160959. +This document summarizes the test suite that has been added to the ado-aw compiler project to satisfy the requirements in issue #160959. ## What Was Added @@ -181,7 +181,7 @@ To verify the tests work correctly: 2. Run the tests: ```bash - cd agentic-pipelines + cd ado-aw cargo test ``` @@ -190,16 +190,16 @@ To verify the tests work correctly: ## Files Modified/Created ### Modified -- `agentic-pipelines/src/main.rs` - Added 219 lines of unit tests +- `ado-aw/src/main.rs` - Added 219 lines of unit tests ### Created -- `agentic-pipelines/tests/` - Test directory -- `agentic-pipelines/tests/compiler_tests.rs` - 8 integration tests -- `agentic-pipelines/tests/README.md` - Testing guide -- `agentic-pipelines/tests/fixtures/` - Test fixtures directory -- `agentic-pipelines/tests/fixtures/minimal-agent.md` - Minimal test fixture -- `agentic-pipelines/tests/fixtures/complete-agent.md` - Complete test fixture -- `agentic-pipelines/tests/SUMMARY.md` - This summary document +- `ado-aw/tests/` - Test directory +- `ado-aw/tests/compiler_tests.rs` - 8 integration tests +- `ado-aw/tests/README.md` - Testing guide +- `ado-aw/tests/fixtures/` - Test fixtures directory +- `ado-aw/tests/fixtures/minimal-agent.md` - Minimal test fixture +- `ado-aw/tests/fixtures/complete-agent.md` - Complete test fixture +- `ado-aw/tests/SUMMARY.md` - This summary document ## Conclusion diff --git a/agentic-pipelines/tests/VERIFICATION.md b/tests/VERIFICATION.md similarity index 89% rename from agentic-pipelines/tests/VERIFICATION.md rename to tests/VERIFICATION.md index 7c3377f..56e73a0 100644 --- a/agentic-pipelines/tests/VERIFICATION.md +++ b/tests/VERIFICATION.md @@ -22,13 +22,13 @@ This document demonstrates that all acceptance criteria from issue #160959 have **Status**: COMPLETED **Implementation**: -- Unit tests added to `agentic-pipelines/src/main.rs` in a `tests` module (Rust convention) -- Integration tests added to `agentic-pipelines/tests/compiler_tests.rs` (Rust convention) +- Unit tests added to `ado-aw/src/main.rs` in a `tests` module (Rust convention) +- Integration tests added to `ado-aw/tests/compiler_tests.rs` (Rust convention) - Note: Issue mentioned `tests/compiler_tests.py`, but this is a Rust project, so we used Rust conventions **Files**: -- `agentic-pipelines/src/main.rs` - Line 337-554 (218 lines of unit tests) -- `agentic-pipelines/tests/compiler_tests.rs` - 197 lines of integration tests +- `ado-aw/src/main.rs` - Line 337-554 (218 lines of unit tests) +- `ado-aw/tests/compiler_tests.rs` - 197 lines of integration tests ### ✅ Define the input and expected output for the test case based on the functionality being tested @@ -121,8 +121,8 @@ fn test_compile_pipeline_basic() { **Status**: COMPLETED **Evidence**: -- Unit tests: `agentic-pipelines/src/main.rs` (lines 337-554) -- Integration tests: `agentic-pipelines/tests/compiler_tests.rs` +- Unit tests: `ado-aw/src/main.rs` (lines 337-554) +- Integration tests: `ado-aw/tests/compiler_tests.rs` - Both files follow Rust project structure conventions ### ✅ 2. The test case passes when the code is executed with the expected behavior @@ -142,7 +142,7 @@ fn test_compile_pipeline_basic() { **Command to run tests**: ```bash -cd agentic-pipelines +cd ado-aw cargo test ``` @@ -193,7 +193,7 @@ cargo test **Verification**: ```bash # No changes to dependencies -git diff agentic-pipelines/Cargo.toml +git diff ado-aw/Cargo.toml # (No output - file unchanged) ``` @@ -302,7 +302,7 @@ To verify all tests pass: ```bash # Navigate to project directory -cd C:\r\agentic-pipelines +cd C:\r\ado-aw # Run all tests cargo test @@ -315,15 +315,15 @@ cargo test ## Files Changed **Modified**: 1 file -- `agentic-pipelines/src/main.rs` (+219 lines of unit tests) +- `ado-aw/src/main.rs` (+219 lines of unit tests) **Created**: 7 files -- `agentic-pipelines/tests/compiler_tests.rs` (197 lines, 8 integration tests) -- `agentic-pipelines/tests/README.md` (192 lines, testing guide) -- `agentic-pipelines/tests/SUMMARY.md` (243 lines, implementation summary) -- `agentic-pipelines/tests/VERIFICATION.md` (this file) -- `agentic-pipelines/tests/fixtures/minimal-agent.md` (9 lines) -- `agentic-pipelines/tests/fixtures/complete-agent.md` (57 lines) +- `ado-aw/tests/compiler_tests.rs` (197 lines, 8 integration tests) +- `ado-aw/tests/README.md` (192 lines, testing guide) +- `ado-aw/tests/SUMMARY.md` (243 lines, implementation summary) +- `ado-aw/tests/VERIFICATION.md` (this file) +- `ado-aw/tests/fixtures/minimal-agent.md` (9 lines) +- `ado-aw/tests/fixtures/complete-agent.md` (57 lines) **Total**: 917+ lines of test code and documentation added diff --git a/agentic-pipelines/tests/compiler_tests.rs b/tests/compiler_tests.rs similarity index 100% rename from agentic-pipelines/tests/compiler_tests.rs rename to tests/compiler_tests.rs diff --git a/agentic-pipelines/tests/fixtures/1es-test-agent.md b/tests/fixtures/1es-test-agent.md similarity index 100% rename from agentic-pipelines/tests/fixtures/1es-test-agent.md rename to tests/fixtures/1es-test-agent.md diff --git a/agentic-pipelines/tests/fixtures/complete-agent.md b/tests/fixtures/complete-agent.md similarity index 100% rename from agentic-pipelines/tests/fixtures/complete-agent.md rename to tests/fixtures/complete-agent.md diff --git a/agentic-pipelines/tests/fixtures/minimal-agent.md b/tests/fixtures/minimal-agent.md similarity index 100% rename from agentic-pipelines/tests/fixtures/minimal-agent.md rename to tests/fixtures/minimal-agent.md diff --git a/agentic-pipelines/tests/mcp_firewall_tests.rs b/tests/mcp_firewall_tests.rs similarity index 99% rename from agentic-pipelines/tests/mcp_firewall_tests.rs rename to tests/mcp_firewall_tests.rs index d0d4be6..b65f025 100644 --- a/agentic-pipelines/tests/mcp_firewall_tests.rs +++ b/tests/mcp_firewall_tests.rs @@ -26,7 +26,7 @@ fn create_config_file(config: &str) -> (tempfile::TempDir, std::path::PathBuf) { /// Helper to start the firewall with a config file fn start_firewall(config_path: &std::path::PathBuf) -> FirewallGuard { - let binary_path = env!("CARGO_BIN_EXE_agentic-pipelines"); + let binary_path = env!("CARGO_BIN_EXE_ado-aw"); let mut cmd = Command::new(binary_path); cmd.arg("mcp-firewall"); diff --git a/agentic-pipelines/tests/proxy_tests.rs b/tests/proxy_tests.rs similarity index 99% rename from agentic-pipelines/tests/proxy_tests.rs rename to tests/proxy_tests.rs index c738740..958f8c3 100644 --- a/agentic-pipelines/tests/proxy_tests.rs +++ b/tests/proxy_tests.rs @@ -21,7 +21,7 @@ impl Drop for ProxyGuard { /// Helper to start the proxy as a foreground process and return the port /// The proxy runs until the Child is dropped/killed fn start_proxy(allowed_hosts: &[&str]) -> ProxyGuard { - let binary_path = env!("CARGO_BIN_EXE_agentic-pipelines"); + let binary_path = env!("CARGO_BIN_EXE_ado-aw"); let mut cmd = Command::new(binary_path); cmd.arg("proxy");