### Project Setup and Build Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Standard commands to clone the repository, install dependencies, and build the project. ```bash git clone https://github.com/Ask149/orchestrator.git cd orchestrator npm install npm run build ``` -------------------------------- ### Install CLI Backends Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Commands to install GitHub Copilot and Claude Code CLI tools globally via npm or Homebrew. ```bash npm install -g @github/copilot-cli brew install copilot-cli copilot --version npm install -g @anthropic-ai/claude-code brew install anthropic-ai/packages/claude-code claude --version ``` -------------------------------- ### MCP Orchestrator Configuration Example Source: https://github.com/ask149/orchestrator/blob/main/README.md Example JSON configuration for the MCP Orchestrator, specifying CLI backend settings like 'copilot' and 'claude'. ```json { "cli": { "backend": "copilot", "copilot": { "command": "copilot", "allowAllTools": false, "allowAllPaths": false, "model": null }, "claude": { "command": "claude", "allowAllTools": false, "maxTurns": 10, "model": null } } } ``` -------------------------------- ### Check Node.js Architecture Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Verifies the installed Node.js architecture. This is crucial for ARM64 compatibility on Windows. ```powershell node -p process.arch ``` -------------------------------- ### Job Search Automation with Orchestrator Source: https://github.com/ask149/orchestrator/blob/main/README.md Example of using the `ma` CLI to automate job searches by parallelizing search queries across different platforms. ```bash cd /path/to/job-search-automation ma parallel "search LinkedIn for SDE-2" "search Reddit for remote jobs" ``` -------------------------------- ### Configure MCP Servers for macOS/Linux Source: https://github.com/ask149/orchestrator/blob/main/README.md Provides the JSON configuration for setting up MCP servers on macOS and Linux systems. This example configures the 'playwright' server using npx. ```json { "mcpServers": { "playwright": { "type": "local", "command": "npx", "args": ["-y", "@playwright/mcp@latest"], "tools": ["*"] } } } ``` -------------------------------- ### Run Parallel AI Agent Tasks Source: https://github.com/ask149/orchestrator/blob/main/README.md Example of spawning multiple parallel sub-agents for job research using the 'ma parallel' command. ```bash # Via job-search-automation workspace cd /path/to/job-search-automation ma parallel \ "search LinkedIn for SDE-2 roles" \ "search Reddit for remote jobs" \ "research top companies for tech stack" ``` -------------------------------- ### Run Orchestrator Server Locally Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Starts the Orchestrator server locally using the compiled JavaScript output. This command is used for testing the server's functionality by sending JSON-RPC requests over standard input. ```bash node dist/index.js ``` -------------------------------- ### Orchestrator Audit Log Example Source: https://github.com/ask149/orchestrator/blob/main/README.md An example of an audit log entry generated by the orchestrator, showing the timestamp, log level, message, and associated task IDs. ```jsonl {"timestamp":"2026-02-01T10:00:00.000Z","level":"INFO","message":"Spawning 3 sub-agents","taskIds":["stripe","google","meta"]} ``` -------------------------------- ### Validate Orchestrator Setup on Windows Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md A PowerShell script to validate the Orchestrator setup on Windows. It checks Node.js version, npm version, platform, architecture, temporary directory, configuration directory, and the availability of Copilot and Claude CLIs. The script is designed to be run with bypass execution policy. ```powershell Write-Host "Orchestrator Windows Validation" Write-Host "===============================" Write-Host "" # Check Node.js Write-Host "✓ Node.js version: $(node --version)" # Check npm Write-Host "✓ npm version: $(npm --version)" # Check platform $os = $(node -p process.platform) Write-Host "✓ Platform: $os" # Check arch $arch = $(node -p process.arch) Write-Host "✓ Architecture: $arch" # Check temp dir $tmpdir = $(node -e "const os = require('os'); console.log(os.tmpdir());") Write-Host "✓ Temp dir: $tmpdir" # Check config dir $configdir = $(node -e "const os = require('os'); const path = require('path'); const base = process.env.LOCALAPPDATA || process.env.APPDATA || os.homedir(); console.log(path.join(base, 'orchestrator'));") Write-Host "✓ Config dir: $configdir" # Check CLI backends if (Get-Command copilot -ErrorAction SilentlyContinue) { Write-Host "✓ Copilot CLI available" } else { Write-Host "✗ Copilot CLI NOT found" } if (Get-Command claude -ErrorAction SilentlyContinue) { Write-Host "✓ Claude CLI available" } else { Write-Host "✗ Claude CLI NOT found" } Write-Host "" Write-Host "All basic checks passed!" ``` -------------------------------- ### Measure Orchestrator Startup Time Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Measures the command execution time for starting the Orchestrator. It uses PowerShell's `Measure-Command` cmdlet and selects the first output line. The expected startup time is less than 2 seconds. ```powershell Measure-Command { npm start | Select-Object -First 1 } ``` -------------------------------- ### Integrate with Cline/Claude Code Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Configuration for Cline MCP settings and example usage of the spawn_subagents tool. ```json { "mcpServers": { "orchestrator": { "command": "node", "args": ["/path/to/orchestrator/dist/index.js"], "env": { "ORCHESTRATOR_WORKSPACE": "/path/to/your/workspace" } } } } ``` ```typescript const result = await useMcpTool('orchestrator', 'spawn_subagents', { tasks: [ { id: "task-1", prompt: "Your task description here", mcp_servers: ["playwright"], cli_backend: "copilot" } ] }); ``` -------------------------------- ### Run Development Server with tsx Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Starts the Orchestrator project in development mode using tsx, which allows direct execution of TypeScript files without a prior compilation step. This is useful for rapid development and debugging. ```bash npm run dev ``` -------------------------------- ### Locate CLI Executables Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Commands to find the absolute paths of installed CLI tools on Windows to ensure they are accessible for the orchestrator. ```powershell where.exe copilot where.exe claude ``` -------------------------------- ### GET check_health Source: https://context7.com/ask149/orchestrator/llms.txt Verifies the orchestrator health and the availability of configured CLI backends. ```APIDOC ## GET check_health ### Description Verifies orchestrator health and CLI backend availability. Returns system status, platform info, and backend versions. ### Method GET ### Endpoint check_health ### Response #### Success Response (200) - **healthy** (boolean) - Overall system status. - **backends** (object) - Status and version of available backends. #### Response Example { "healthy": true, "platform": "darwin-arm64", "backends": { "copilot": { "available": true, "version": "1.0.0" } } } ``` -------------------------------- ### Get Node.js Home Directory Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Retrieves the user's home directory using Node.js's built-in `os` module. This is useful for locating user-specific configuration or data. ```javascript const os = require('os'); console.log(os.homedir()); ``` -------------------------------- ### Get Node.js Temporary Directory Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Retrieves the path to the temporary directory used by Node.js, which is important for applications that require temporary file storage. ```javascript const os = require('os'); console.log(os.tmpdir()); ``` -------------------------------- ### Orchestrator Health Check Status Source: https://github.com/ask149/orchestrator/blob/main/README.md Example JSON output representing the health status of the orchestrator, including platform details and backend service availability. This is useful for monitoring and debugging. ```json { "healthy": true, "timestamp": "2026-02-03T10:00:00.000Z", "platform": "darwin-arm64", "backends": { "copilot": { "available": true, "version": "1.0.0" }, "claude": { "available": false, "error": "not found" } } } ``` -------------------------------- ### Configure CLI Backend Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Create the configuration directory and the config.json file to define the active CLI backend. ```bash mkdir -p ~/.config/orchestrator New-Item -ItemType Directory -Force $env:LOCALAPPDATA\orchestrator ``` ```json { "cli": { "backend": "copilot", "copilot": { "command": "copilot", "agent": "job-search", "allowAllTools": false, "allowAllPaths": false, "model": null }, "claude": { "command": "claude", "allowAllTools": false, "maxTurns": 10, "model": null } } } ``` -------------------------------- ### Configure Windows Environment Paths Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Commands to inspect and create the necessary directory structure for orchestrator configuration and logs on Windows. ```powershell echo $env:LOCALAPPDATA New-Item -ItemType Directory -Force $env:LOCALAPPDATA\orchestrator New-Item -ItemType Directory -Force $env:LOCALAPPDATA\orchestrator\logs ``` -------------------------------- ### Set Environment Variables Source: https://context7.com/ask149/orchestrator/llms.txt Configures runtime behavior and CLI paths using environment variables for flexible deployment. ```bash export COPILOT_CLI=/usr/local/bin/copilot export CLAUDE_CLI=/usr/local/bin/claude ``` -------------------------------- ### Configure context passing for sub-agents Source: https://context7.com/ask149/orchestrator/llms.txt Shows how to pass file-based context to sub-agents using different modes such as full content, summary, or grep patterns. This enables sub-agents to access relevant project data efficiently. ```json { "tasks": [ { "id": "code-review", "prompt": "Review the code changes", "context": { "files": [ { "path": "src/main.ts", "mode": "full" }, { "path": "src/", "mode": "grep", "pattern": "TODO|FIXME" } ] } } ] } ``` -------------------------------- ### Orchestrator Development Build and Test Commands Source: https://github.com/ask149/orchestrator/blob/main/README.md Provides essential npm scripts for building, watching, type checking, and running tests for the orchestrator project. These commands facilitate the development lifecycle. ```bash npm run build npm run watch npx tsc --noEmit npm test npm test:watch ``` -------------------------------- ### Spawn Parallel Sub-Agents with Tasks Source: https://github.com/ask149/orchestrator/blob/main/README.md Defines how to use the `spawn_subagents` tool to execute multiple tasks concurrently. It accepts an array of tasks, each with an ID, prompt, and optional context, workspace, timeout, and CLI backend. ```json { "tasks": [ { "id": "stripe", "prompt": "Find SDE-2 roles at Stripe", "mcp_servers": ["playwright"] }, { "id": "google", "prompt": "Find SDE-2 roles at Google", "mcp_servers": ["playwright"] }, { "id": "meta", "prompt": "Find SDE-2 roles at Meta", "mcp_servers": ["playwright"], "cli_backend": "claude" } ] } ``` ```json { "tasks": [ { "id": "analyze", "prompt": "Analyze this file and summarize", "context": { "files": [ { "path": "src/main.ts", "mode": "full" }, { "path": "README.md", "mode": "summary" }, { "path": "src/", "mode": "grep", "pattern": "TODO|FIXME" } ] } } ] } ``` -------------------------------- ### Configure MCP Servers Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Define MCP servers for sub-agents. Note the requirement for a cmd /c wrapper on Windows platforms. ```json { "mcpServers": { "playwright": { "type": "local", "command": "npx", "args": ["-y", "@playwright/mcp@latest"], "tools": ["*"] }, "fetch": { "type": "local", "command": "npx", "args": ["-y", "@anthropic-ai/mcp-fetch"], "tools": ["*"] } } } ``` ```json { "mcpServers": { "playwright": { "type": "local", "command": "cmd", "args": ["/c", "npx", "-y", "@playwright/mcp@latest"], "tools": ["*"] }, "fetch": { "type": "local", "command": "cmd", "args": ["/c", "npx", "-y", "@anthropic-ai/mcp-fetch"], "tools": ["*"] } } } ``` -------------------------------- ### Testing Source: https://github.com/ask149/orchestrator/blob/main/README.md Information about cross-platform smoke tests, validating config path resolution, temp file handling, permissions, grep implementation, and platform-specific spawn behavior. ```APIDOC ## Testing Cross-platform smoke tests validate: - Config path resolution (macOS/Linux/Windows) - Temp file handling - Secure permission defaults - Grep implementation (no Unix deps) - Platform-specific spawn behavior Run tests with: `npm test` ``` -------------------------------- ### License Source: https://github.com/ask149/orchestrator/blob/main/README.md The project is licensed under the MIT license. ```APIDOC ## License MIT ``` -------------------------------- ### Development Commands Source: https://github.com/ask149/orchestrator/blob/main/README.md Commands for building, watching, type checking, and testing the orchestrator project. ```APIDOC ## Development ```bash # Build npm run build # Watch mode npm run watch # Type check npx tsc --noEmit # Run smoke tests npm test # Watch tests npm test:watch ``` ``` -------------------------------- ### Verify Node.js Temporary Directory Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md A one-liner to verify that Node.js correctly resolves the system temporary directory on the host machine. ```javascript const os = require('os'); console.log(os.tmpdir()); ``` -------------------------------- ### Configure CLI Backends Source: https://context7.com/ask149/orchestrator/llms.txt Defines the structure for CLI backend configuration, allowing users to specify command paths, model preferences, and permission settings for GitHub Copilot and Claude CLI. ```json { "cli": { "backend": "copilot", "copilot": { "command": "copilot", "allowAllTools": true, "allowAllPaths": true, "model": "gpt-4" }, "claude": { "command": "claude", "allowAllTools": true, "maxTurns": 10, "model": "claude-sonnet-4-20250514" } } } ``` -------------------------------- ### MCP Server Configuration Source: https://github.com/ask149/orchestrator/blob/main/README.md Guidelines for configuring MCP servers for sub-agent access, including platform-specific requirements. ```APIDOC ## MCP Server Configuration ### Description Defines how to configure MCP servers for sub-agents. Note that for Copilot CLI in programmatic mode, configuration must exist in the default location (~/.copilot/mcp-config.json). ### Configuration Fields - **type** (string) - Required for Copilot - Connection type (local, stdio, http, sse). - **command** (string) - Required - Executable path. - **args** (array) - Required - Command arguments. - **tools** (array) - Required for Copilot - List of allowed tools or ["*"]. ### Example (macOS/Linux) { "mcpServers": { "playwright": { "type": "local", "command": "npx", "args": ["-y", "@playwright/mcp@latest"], "tools": ["*"] } } } ``` -------------------------------- ### Spawn parallel sub-agents using spawn_subagents Source: https://context7.com/ask149/orchestrator/llms.txt Demonstrates the JSON structure for defining multiple tasks to be executed in parallel by the orchestrator, including timeout and workspace configuration. The response provides aggregated results including success status and duration for each task. ```json { "tasks": [ { "id": "stripe-search", "prompt": "Find SDE-2 roles at Stripe and summarize requirements", "mcp_servers": ["playwright"], "workspace": "/path/to/workspace", "timeout_seconds": 120 }, { "id": "google-search", "prompt": "Find SDE-2 roles at Google and summarize requirements", "mcp_servers": ["playwright"], "cli_backend": "claude" } ], "default_timeout_seconds": 120 } ``` -------------------------------- ### Run Health Check CLI Source: https://context7.com/ask149/orchestrator/llms.txt Commands to verify the availability of backend services and inspect the current configuration status from the terminal. ```bash npm run health # Or npx mcp-orchestrator-health ``` -------------------------------- ### Determine Orchestrator Configuration Directory Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Calculates the configuration directory path for the Orchestrator. It prioritizes `LOCALAPPDATA`, falls back to `APPDATA`, then `os.homedir()`, and appends 'orchestrator'. ```javascript const os = require('os'); const path = require('path'); const base = process.env.LOCALAPPDATA || process.env.APPDATA || os.homedir(); console.log(path.join(base, 'orchestrator')); ``` -------------------------------- ### Integrate Orchestrator as an MCP Server Source: https://context7.com/ask149/orchestrator/llms.txt Provides the configuration snippet required to register the Orchestrator as a standalone server within other MCP-compatible clients. ```json { "mcpServers": { "orchestrator": { "command": "node", "args": ["/path/to/orchestrator/dist/index.js"], "env": { "ORCHESTRATOR_WORKSPACE": "/path/to/your/workspace", "ORCHESTRATOR_DEFAULT_BACKEND": "copilot", "LOG_LEVEL": "INFO" } } } } ``` -------------------------------- ### Define MCP Server Configuration for Windows Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md The required JSON configuration for mcp-subagent.json, utilizing the cmd wrapper to execute npx commands on Windows. ```json { "mcpServers": { "playwright": { "type": "local", "command": "cmd", "args": ["/c", "npx", "-y", "@playwright/mcp@latest"], "tools": ["*"] } } } ``` -------------------------------- ### Build Orchestrator Project Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Compiles the Orchestrator project, generating production-ready JavaScript files. This command is typically used before deploying the application or running it in a production environment. ```bash npm run build ``` -------------------------------- ### Read Orchestrator Resources via MCP SDK Source: https://context7.com/ask149/orchestrator/llms.txt Demonstrates how to programmatically access internal Orchestrator state, such as logs and configuration, using the Model Context Protocol SDK. ```typescript import { Client } from '@modelcontextprotocol/sdk/client'; const response = await client.readResource({ uri: 'config://orchestrator/current' }); console.log(response.contents[0].text); ``` -------------------------------- ### Validate CLI Backend Discovery Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md A script to verify that the orchestrator correctly resolves CLI backend paths from environment variables or system defaults. ```javascript const backends = { copilot: process.env.COPILOT_CLI || 'copilot', claude: process.env.CLAUDE_CLI || 'claude' }; console.log('Copilot:', backends.copilot); console.log('Claude:', backends.claude); ``` -------------------------------- ### Configure Smart Timeouts Source: https://context7.com/ask149/orchestrator/llms.txt Sets default timeout thresholds for various MCP server types to ensure efficient task execution, with logic that automatically promotes timeouts based on server requirements. ```typescript const DEFAULT_MCP_TIMEOUTS = { 'filesystem': 30, 'memory': 30, 'github': 60, 'google-tasks': 60, 'google-calendar': 90, 'leetcode': 90, 'playwright': 120, '_default': 60 }; ``` -------------------------------- ### POST spawn_subagents Source: https://context7.com/ask149/orchestrator/llms.txt Spawns parallel AI sub-agents to execute specific tasks with defined configurations and context. ```APIDOC ## POST spawn_subagents ### Description Spawns multiple parallel sub-agents to perform tasks. Each task can have its own prompt, CLI backend, and MCP server configuration. ### Method POST ### Endpoint spawn_subagents ### Parameters #### Request Body - **tasks** (array) - Required - List of task objects (max 10). - **default_timeout_seconds** (number) - Optional - Global timeout for tasks. - **default_workspace** (string) - Optional - Global workspace path. ### Request Example { "tasks": [ { "id": "stripe-search", "prompt": "Find SDE-2 roles at Stripe", "mcp_servers": ["playwright"], "workspace": "/path/to/workspace" } ] } ### Response #### Success Response (200) - **completed** (number) - Count of successful tasks. - **failed** (number) - Count of failed tasks. - **results** (array) - Detailed output per task. #### Response Example { "completed": 1, "failed": 0, "results": [ { "id": "stripe-search", "success": true, "output": "Found 5 SDE-2 positions..." } ] } ``` -------------------------------- ### POST /spawn_subagents Source: https://github.com/ask149/orchestrator/blob/main/README.md Spawns multiple sub-agents in parallel to execute specific tasks with custom configurations and context. ```APIDOC ## POST /spawn_subagents ### Description Spawns parallel sub-agents for complex tasks. Supports task-specific prompts, context injection, and MCP server enablement. ### Method POST ### Endpoint /spawn_subagents ### Parameters #### Request Body - **tasks** (array) - Required - Array of sub-agent task objects (max 10). - **default_timeout_seconds** (number) - Optional - Default timeout in seconds (default: 120). - **default_workspace** (string) - Optional - Default working directory path. ### Request Example { "tasks": [ { "id": "research-task", "prompt": "Find SDE-2 roles at Stripe", "mcp_servers": ["playwright"] } ] } ### Response #### Success Response (200) - **status** (string) - Execution status of the spawned sub-agents. #### Response Example { "status": "success", "taskIds": ["research-task"] } ``` -------------------------------- ### Define MCP Servers Source: https://context7.com/ask149/orchestrator/llms.txt Configures local MCP servers for sub-agent tasks, specifying the command, arguments, and tool access levels for each server. ```json { "mcpServers": { "playwright": { "type": "local", "command": "npx", "args": ["-y", "@playwright/mcp@latest"], "tools": ["*"] }, "filesystem": { "type": "local", "command": "npx", "args": ["-y", "@anthropic/mcp-filesystem", "/path/to/allowed/dir"], "tools": ["*"] }, "fetch": { "type": "local", "command": "npx", "args": ["-y", "@anthropic/mcp-fetch"], "tools": ["*"] } } } ``` -------------------------------- ### Known Limitations: Claude CLI Backend Source: https://github.com/ask149/orchestrator/blob/main/README.md Details on limitations concerning the Claude CLI backend, specifically regarding authentication detection and MCP schema strictness. ```APIDOC ### Claude CLI Backend | Issue | Description | Mitigation | |---|---|---| | **Auth not auto-detected** | `claude --version` succeeds without auth, but prompts fail with "Invalid API key". | The health check now runs a quick prompt to validate auth. Run `claude login` to fix. | | **Stricter MCP schema** | Claude CLI rejects `type` and `tools` fields in MCP config. | The orchestrator auto-strips these fields when generating Claude-compatible configs. ``` -------------------------------- ### Health Check for Orchestrator CLI Source: https://github.com/ask149/orchestrator/blob/main/README.md Demonstrates how to perform a health check on the orchestrator CLI to verify the availability of backend services. It returns JSON indicating backend status. ```bash npm run health ``` ```bash npx mcp-orchestrator-health ``` -------------------------------- ### MCP Resources Source: https://github.com/ask149/orchestrator/blob/main/README.md The orchestrator exposes its logs and configuration as MCP resources. These can be used to inspect orchestrator state without direct file access. ```APIDOC ## MCP Resources (v1.1.0+) The orchestrator exposes its logs and configuration as MCP resources. | Resource URI | Description | |--------------|-------------| | `logs://orchestrator/app` | Application logs in JSONL format | | `logs://orchestrator/recent` | Tail of application logs (last ~200 lines) | | `config://orchestrator/current` | Current CLI and MCP server configuration | | `health://orchestrator/status` | Health status snapshot (same as `check_health`) | | `state://orchestrator/active_tasks` | In-flight task IDs tracked for graceful shutdown | Use these resources to inspect orchestrator state without direct file access. ``` -------------------------------- ### Standalone Orchestrator MCP Server Configuration Source: https://github.com/ask149/orchestrator/blob/main/README.md Shows how to configure the orchestrator as a standalone MCP server within your MCP settings. This allows it to be used with tools like VS Code or Cline. ```json { "mcpServers": { "orchestrator": { "command": "node", "args": ["/path/to/orchestrator/dist/index.js"], "env": { "ORCHESTRATOR_WORKSPACE": "/path/to/your/workspace" } } } } ``` -------------------------------- ### Check Health Tool Source: https://github.com/ask149/orchestrator/blob/main/README.md Verify orchestrator health via MCP. This is an alternative to the CLI command `npm run health`. ```APIDOC ### Tool: `check_health` Verify orchestrator health via MCP (alternative to CLI `npm run health`): ```json { "healthy": true, "timestamp": "2026-02-03T10:00:00.000Z", "platform": "darwin-arm64", "backends": { "copilot": { "available": true, "version": "1.0.0" }, "claude": { "available": false, "error": "not found" } } } ``` ``` -------------------------------- ### Verify system health with check_health Source: https://context7.com/ask149/orchestrator/llms.txt A request to the check_health tool to verify the availability of CLI backends and system configuration. It returns the current platform, backend versions, and overall health status. ```json {} ``` -------------------------------- ### Run Orchestrator Validation Script Source: https://github.com/ask149/orchestrator/blob/main/WINDOWS_VALIDATION.md Command to execute the `validate-windows.ps1` script on Windows. It uses `powershell -ExecutionPolicy Bypass` to ensure the script runs even if the execution policy is restricted. ```powershell powershell -ExecutionPolicy Bypass -File validate-windows.ps1 ``` -------------------------------- ### Known Limitations: Playwright MCP & Browser Automation Source: https://github.com/ask149/orchestrator/blob/main/README.md Details on limitations related to Playwright MCP and browser automation, including Chrome profile locking, parallel browser concurrency, headless mode, and output streaming. ```APIDOC ## Known Limitations ### Playwright MCP & Browser Automation | Issue | Description | Mitigation | |---|---|---| | **Chrome profile lock** | Chrome locks `--user-data-dir` to one process. If Chrome is already running with the same profile (e.g., VS Code's Playwright MCP), sub-agents cannot use Playwright MCP tools. | The orchestrator auto-generates isolated temp profiles per sub-agent (`/tmp/pw-profile-{taskId}`). If the MCP still fails, the `BROWSER_AUTOMATION_FALLBACK` prompt instructs sub-agents to use `chromium.launch({ headless: true })` via the Playwright npm package directly. | | **Parallel browser concurrency** | Multiple sub-agents requesting Playwright spawn separate browser instances, which increases memory/CPU usage. | Limit parallel Playwright tasks to 2-3 at a time. | | **No headless mode in MCP** | Playwright MCP launches a visible browser window by default, which steals focus and fails in CI/CD. | Pass `--headless` in the Playwright MCP args in `mcp-subagent.json`, or rely on the npm fallback which uses headless by default. | | **No output streaming** | Sub-agents buffer all stdout until process exit. For long Playwright tasks, there's no progress indication. | Use shorter, focused prompts. Complex multi-page workflows should be split into separate tasks. ``` -------------------------------- ### Perform Type Checking with TypeScript Source: https://github.com/ask149/orchestrator/blob/main/SETUP.md Executes the TypeScript compiler to check for type errors in the codebase without generating any output JavaScript files. This helps ensure code quality and prevent type-related bugs. ```bash npx tsc --noEmit ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.