Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 0 additions & 2 deletions .github/codeql/typescript-config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
name: TypeScript CodeQL Configuration

paths:
- packages/tools/code-evaluation/**
- packages/tools/web-search/**
- packages/api/**
- packages/ui/**

Expand Down
10 changes: 1 addition & 9 deletions .github/workflows/codeql-typescript.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@ on:
- 'packages/api/*.js'
- 'packages/ui/*.ts'
- 'packages/ui/*.js'
- 'packages/tools/code-evaluation/**/*.ts'
- 'packages/tools/code-evaluation/**/*.js'
- 'packages/tools/web-search/**/*.ts'
- 'packages/tools/web-search/**/*.js'
- 'packages/tools/echo-ping/**/*.ts'
- 'packages/tools/echo-ping/**/*.js'
- 'src/shared/**/*.ts'
Expand All @@ -25,10 +21,6 @@ on:
- 'packages/api/*.js'
- 'packages/ui/*.ts'
- 'packages/ui/*.js'
- 'packages/tools/code-evaluation/**/*.ts'
- 'packages/tools/code-evaluation/**/*.js'
- 'packages/tools/web-search/**/*.ts'
- 'packages/tools/web-search/**/*.js'
- 'packages/tools/echo-ping/**/*.ts'
- 'packages/tools/echo-ping/**/*.js'
- 'src/shared/**/*.ts'
Expand Down Expand Up @@ -59,7 +51,7 @@ jobs:

- name: Install dependencies
run: |
for dir in packages/tools/code-evaluation packages/tools/web-search packages/tools/echo-ping src/api src/ui; do
for dir in packages/tools/echo-ping src/api src/ui; do
if [ -f "$dir/package.json" ]; then
cd $dir && npm install && cd -
fi
Expand Down
12 changes: 0 additions & 12 deletions .vscode/mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,6 @@
"type": "http",
"url": "http://localhost:5007/mcp"
},
"tool-web-search": {
"type": "sse",
"url": "http://localhost:5006/sse"
},
"tool-model-inference": {
"type": "sse",
"url": "http://localhost:5005/sse"
},
"tool-code-evaluation": {
"type": "sse",
"url": "http://localhost:5004/sse"
},
"tool-itinerary-planning": {
"type": "http",
"url": "http://localhost:5003/mcp"
Expand Down
21 changes: 3 additions & 18 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@ All orchestrators communicate with the same MCP tool servers. Each component is
│ │ ├── echo-ping/ # TypeScript/Node.js (testing tool)
│ │ ├── customer-query/ # C#/.NET (customer inquiry processing)
│ │ ├── destination-recommendation/ # Java (travel destination suggestions)
│ │ ├── itinerary-planning/ # Python (detailed itinerary creation)
│ │ ├── code-evaluation/ # Python (code interpreter integration)
│ │ ├── model-inference/ # Python (local LLM with GPU support)
│ │ └── web-search/ # TypeScript (Bing API integration)
│ │ └── itinerary-planning/ # Python (detailed itinerary creation)
│ │
│ ├── shared/ # Common utilities and types
│ └── docker-compose.yml # Local development environment
├── azure.yaml # Azure Developer CLI configuration
Expand Down Expand Up @@ -60,9 +58,6 @@ The system implements specialized agents coordinated by orchestration layers. Al
- **Customer Query Agent**: Extracts preferences from customer inquiries (via customer-query MCP)
- **Destination Recommendation Agent**: Suggests destinations (via destination-recommendation MCP)
- **Itinerary Planning Agent**: Creates detailed travel plans (via itinerary-planning MCP)
- **Web Search Agent**: Fetches live travel data via Bing API (via web-search MCP)
- **Code Evaluation Agent**: Executes custom logic (via code-evaluation MCP)
- **Model Inference Agent**: Runs local LLMs with ONNX/vLLM (via model-inference MCP)
- **Echo Agent**: Testing and validation (via echo-ping MCP)

**Option 2: LlamaIndex.TS Orchestration** (`packages/api/src/orchestrator/llamaindex/`)
Expand All @@ -74,9 +69,6 @@ The system implements specialized agents coordinated by orchestration layers. Al
- **Customer Query Agent**: Extracts preferences from customer inquiries (via customer-query MCP)
- **Destination Recommendation Agent**: Suggests destinations (via destination-recommendation MCP)
- **Itinerary Planning Agent**: Creates detailed travel plans (via itinerary-planning MCP)
- **Web Search Agent**: Fetches live travel data via Bing API (via web-search MCP)
- **Code Evaluation Agent**: Executes custom logic (via code-evaluation MCP)
- **Model Inference Agent**: Runs local LLMs with ONNX/vLLM (via model-inference MCP)
- **Echo Agent**: Testing and validation (via echo-ping MCP)

**Option 3: Microsoft Agent Framework Orchestration** (`packages/api-python/`)
Expand All @@ -89,9 +81,6 @@ The system implements specialized agents coordinated by orchestration layers. Al
- **CustomerQueryAgent**: Processes customer inquiries with MCP tools
- **DestinationRecommendationAgent**: Provides destination suggestions
- **ItineraryPlanningAgent**: Creates detailed itineraries with MCP tools
- **CodeEvaluationAgent**: Executes code via code-evaluation MCP server
- **ModelInferenceAgent**: Performs local model inference via MCP
- **WebSearchAgent**: Searches web using Bing API via MCP
- **EchoAgent**: Testing and validation via echo-ping MCP

#### MCP Tool Servers (Shared by All Orchestrations)
Expand All @@ -101,9 +90,6 @@ All three orchestration implementations communicate with these MCP servers:
- **customer-query** (.NET/C#) - Port 5001 - Customer inquiry processing
- **destination-recommendation** (Java) - Port 5002 - Travel destination suggestions
- **itinerary-planning** (Python) - Port 5003 - Detailed itinerary creation
- **code-evaluation** (Python) - Port 5004 - Code interpreter integration
- **model-inference** (Python) - Port 5005 - Local LLM with GPU support
- **web-search** (TypeScript) - Port 5006 - Bing API integration
- **echo-ping** (TypeScript) - Port 5007 - Testing and validation

### Service Communication
Expand Down Expand Up @@ -234,7 +220,7 @@ For detailed comparison, see `docs/orchestration.md`.

### TypeScript/Node.js Standards

**Location**: `packages/api/`, `packages/ui/`, `packages/tools/echo-ping/`, `packages/tools/web-search/`
**Location**: `packages/api/`, `packages/ui/`, `packages/tools/echo-ping/`

**Key Conventions**:
- Use ES modules (`"type": "module"` in package.json)
Expand Down Expand Up @@ -529,7 +515,6 @@ chore(deps): update dependencies
cd packages/tools/itinerary-planning && pip install .
cd packages/tools/code-evaluation && pip install .
cd packages/tools/model-inference && pip install .
cd packages/tools/web-search && npm run build
```

2. **Test Coverage**: Run existing tests and add new tests for new functionality
Expand Down
6 changes: 0 additions & 6 deletions docs/advanced-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,6 @@ The application uses environment variables to configure the services. You can se
- `packages/tools/destination-recommendation/.env.docker`
- `packages/tools/itinerary-planning/.env`
- `packages/tools/itinerary-planning/.env.docker`
- `packages/tools/code-evaluation/.env`
- `packages/tools/code-evaluation/.env.docker`
- `packages/tools/model-inference/.env`
- `packages/tools/model-inference/.env.docker`
- `packages/tools/web-search/.env`
- `packages/tools/web-search/.env.docker`
- `packages/tools/echo-ping/.env`
- `packages/tools/echo-ping/.env.docker`

Expand Down
26 changes: 1 addition & 25 deletions docs/deployment-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ graph TB
EP[Echo Ping]
CQ[Cust Query]
DR[Dest Rec]
WS[Web Search]
OTHER[...]
end
end
Expand Down Expand Up @@ -136,18 +135,11 @@ AZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4o-mini

# Bing Search
BING_SEARCH_API_KEY=your-bing-key
BING_SEARCH_ENDPOINT=https://api.bing.microsoft.com/

# MCP Server URLs (local development)
MCP_ECHO_PING_URL=http://localhost:5007
MCP_CUSTOMER_QUERY_URL=http://localhost:5001
MCP_DESTINATION_RECOMMENDATION_URL=http://localhost:5002
MCP_ITINERARY_PLANNING_URL=http://localhost:5003
MCP_CODE_EVALUATION_URL=http://localhost:5004
MCP_MODEL_INFERENCE_URL=http://localhost:5005
MCP_WEB_SEARCH_URL=http://localhost:5006

# Monitoring
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:18889
Expand Down Expand Up @@ -219,9 +211,6 @@ services:
tool-customer-query:
tool-destination-recommendation:
tool-itinerary-planning:
tool-code-evaluation:
tool-model-inference:
tool-web-search:
web-api: # Express API server
web-ui: # Angular UI
```
Expand All @@ -243,14 +232,10 @@ MCP_ECHO_PING_URL=http://tool-echo-ping:3000
MCP_CUSTOMER_QUERY_URL=http://tool-customer-query:8080
MCP_DESTINATION_RECOMMENDATION_URL=http://tool-destination-recommendation:8080
MCP_ITINERARY_PLANNING_URL=http://tool-itinerary-planning:8000
MCP_CODE_EVALUATION_URL=http://tool-code-evaluation:5000
MCP_MODEL_INFERENCE_URL=http://tool-model-inference:5000
MCP_WEB_SEARCH_URL=http://tool-web-search:5000

# External services (from azd provision)
AZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key
BING_SEARCH_API_KEY=your-bing-key

# Docker-specific settings
IS_LOCAL_DOCKER_ENV=true
Expand Down Expand Up @@ -545,11 +530,6 @@ resource apiApp 'Microsoft.App/containerApps@2023-05-01' = {
keyVaultUrl: '${keyVault.properties.vaultUri}secrets/azure-openai-key'
identity: managedIdentity.id
}
{
name: 'bing-search-key'
keyVaultUrl: '${keyVault.properties.vaultUri}secrets/bing-search-key'
identity: managedIdentity.id
}
]
}
template: {
Expand All @@ -570,10 +550,6 @@ resource apiApp 'Microsoft.App/containerApps@2023-05-01' = {
name: 'AZURE_OPENAI_API_KEY'
secretRef: 'azure-openai-key'
}
{
name: 'BING_SEARCH_API_KEY'
secretRef: 'bing-search-key'
}
// MCP server URLs
{
name: 'MCP_ECHO_PING_URL'
Expand Down Expand Up @@ -942,7 +918,7 @@ az acr build \
packages/api

# MCP Server Images
for server in echo-ping customer-query destination-recommendation itinerary-planning code-evaluation model-inference web-search; do
for server in echo-ping customer-query destination-recommendation itinerary-planning; do
echo "Building MCP server: $server"
az acr build \
--registry $ACR_NAME \
Expand Down
9 changes: 1 addition & 8 deletions docs/development-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,10 +273,7 @@ packages/tools/
│ ├── AITravelAgent.sln # Solution file
│ └── Dockerfile
├── destination-recommendation/ # Java/Spring Boot
├── itinerary-planning/ # Python/FastAPI
├── code-evaluation/ # Python
├── model-inference/ # Python with ONNX/vLLM
└── web-search/ # TypeScript/Node.js
└── itinerary-planning/ # Python/FastAPI
```

## Development Workflow
Expand Down Expand Up @@ -568,9 +565,6 @@ tool-my-new-server:
export type McpServerName =
| "echo-ping"
| "customer-query"
| "web-search"
| "itinerary-planning"
| "model-inference"
| "code-evaluation"
| "destination-recommendation"
| "my-new-server"; // Add new server
Expand Down Expand Up @@ -997,7 +991,6 @@ test.describe('Travel Planning User Journey', () => {

// Select tools
await page.check('[data-testid="tool-echo-ping"]');
await page.check('[data-testid="tool-web-search"]');

// Verify selection
const newSelectedTools = await page.$$('[data-testid^="tool-"]:checked');
Expand Down
23 changes: 1 addition & 22 deletions docs/flow-diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,14 @@ sequenceDiagram
participant U as User
participant UI as Angular UI
participant API as Express API
participant LI as LlamaIndex
participant LI as (LlamaIndex, Lanchain.js, or MS Agent Framework)
participant TA as Triage Agent
participant CQA as Customer Query Agent
participant DRA as Destination Rec Agent
participant IPA as Itinerary Planning Agent
participant WSA as Web Search Agent
participant MCPCQ as MCP Customer Query
participant MCPDR as MCP Destination Rec
participant MCPIP as MCP Itinerary Plan
participant MCPWS as MCP Web Search
participant BING as Bing Search API
participant AOAI as Azure OpenAI

U->>UI: Enter travel query "Plan 7-day Japan trip"
Expand All @@ -93,7 +90,6 @@ sequenceDiagram
LI->>CQA: Initialize Customer Query Agent
LI->>DRA: Initialize Destination Rec Agent
LI->>IPA: Initialize Itinerary Planning Agent
LI->>WSA: Initialize Web Search Agent

API->>TA: process("Plan 7-day Japan trip")
API-->>UI: SSE: AgentSetup event
Expand All @@ -117,14 +113,6 @@ sequenceDiagram
DRA-->>TA: return recommendations
API-->>UI: SSE: AgentStream event (partial results)

TA->>WSA: handoff(search current travel info)
WSA->>MCPWS: callTool("search", "Japan travel 2024")
MCPWS->>BING: Search API request
BING-->>MCPWS: Current travel information
MCPWS-->>WSA: Processed search results
WSA-->>TA: return current info
API-->>UI: SSE: AgentStream event

TA->>IPA: handoff(create itinerary, destinations + preferences)
IPA->>MCPIP: callTool("plan_itinerary", full_context)
MCPIP->>AOAI: Generate detailed itinerary
Expand Down Expand Up @@ -313,21 +301,12 @@ graph TD

C -->|Destination| D[Destination Recommendation]
C -->|Planning| E[Itinerary Planning]
C -->|Information| F[Web Search]
C -->|Complex Logic| G[Code Evaluation]
C -->|Custom Model| H[Model Inference]

D --> I[MCP Destination Server]
E --> J[MCP Itinerary Server]
F --> K[MCP Web Search Server]
G --> L[MCP Code Eval Server]
H --> M[MCP Model Server]

I --> N[Response Synthesis]
J --> N
K --> N
L --> N
M --> N

N --> O[Final Response]
```
Expand Down
21 changes: 0 additions & 21 deletions docs/maf-implementation-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,6 @@ class Settings(BaseSettings):
mcp_customer_query_url: str
mcp_destination_recommendation_url: str
mcp_itinerary_planning_url: str
mcp_code_evaluation_url: str
mcp_model_inference_url: str
mcp_web_search_url: str
mcp_echo_ping_url: str
mcp_echo_ping_access_token: Optional[str] = None

Expand Down Expand Up @@ -294,21 +291,6 @@ class ToolRegistry:
settings.mcp_itinerary_planning_url
)

# Code Evaluation
self.clients["code-evaluation"] = HTTPMCPClient(
settings.mcp_code_evaluation_url
)

# Model Inference
self.clients["model-inference"] = HTTPMCPClient(
settings.mcp_model_inference_url
)

# Web Search
self.clients["web-search"] = HTTPMCPClient(
settings.mcp_web_search_url
)

# Echo Ping
self.clients["echo-ping"] = HTTPMCPClient(
settings.mcp_echo_ping_url,
Expand Down Expand Up @@ -385,9 +367,6 @@ class TriageAgent(BaseAgent):
- CustomerQueryAgent: For understanding customer preferences
- DestinationRecommendationAgent: For suggesting destinations
- ItineraryPlanningAgent: For creating travel itineraries
- WebSearchAgent: For finding current travel information
- CodeEvaluationAgent: For calculations and data processing
- ModelInferenceAgent: For specialized AI tasks

Always choose the most appropriate agent(s) for the query.
You may coordinate multiple agents for complex queries.
Expand Down
8 changes: 1 addition & 7 deletions docs/maf-migration-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ This document outlines the migration strategy from the current LlamaIndex.TS orc
2. CustomerQueryAgent
3. DestinationRecommendationAgent
4. ItineraryPlanningAgent
5. CodeEvaluationAgent
6. ModelInferenceAgent
7. WebSearchAgent
8. EchoAgent
5. EchoAgent

**Endpoints**:
- `GET /api/health` - Health check
Expand Down Expand Up @@ -113,9 +110,6 @@ We will use a parallel deployment strategy to minimize risk:
- [ ] Implement CustomerQueryAgent
- [ ] Implement DestinationRecommendationAgent
- [ ] Implement ItineraryPlanningAgent
- [ ] Implement CodeEvaluationAgent
- [ ] Implement ModelInferenceAgent
- [ ] Implement WebSearchAgent
- [ ] Implement EchoAgent
- [ ] Create tool wrappers for MCP calls

Expand Down
Loading
Loading