Merge branch 'main' into adil/agent_format

This commit is contained in:
Adil Hafeez 2025-10-14 13:36:40 -07:00
commit 0eb0d2c3ff
No known key found for this signature in database
GPG key ID: 9B18EF7691369645
5 changed files with 160 additions and 157 deletions

View file

@ -1,89 +1,88 @@
name: Publish docker images to ghcr (latest)
# name: Publish docker image to ghcr (latest)
env:
IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/archgw
# env:
# IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/archgw
on:
push:
branches: [main]
# pull_request:
# on:
# push:
# branches: [main]
jobs:
build-arm64:
runs-on: [linux-arm64]
permissions: { contents: read, packages: write }
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# jobs:
# build-arm64:
# runs-on: [linux-arm64]
# permissions: { contents: read, packages: write }
# steps:
# - uses: actions/checkout@v4
# - uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
# - id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.IMAGE_NAME }}
# tags: |
# type=raw,value=latest
- name: Build and Push ARM64 Image
uses: docker/build-push-action@v5
with:
context: .
file: ./arch/Dockerfile
platforms: linux/arm64
push: true
# produce ghcr.io/<owner>/archgw:latest-arm64
tags: ${{ steps.meta.outputs.tags }}-arm64
# - name: Build and Push ARM64 Image
# uses: docker/build-push-action@v5
# with:
# context: .
# file: ./arch/Dockerfile
# platforms: linux/arm64
# push: true
# # produce ghcr.io/<owner>/archgw:latest-arm64
# tags: ${{ steps.meta.outputs.tags }}-arm64
build-amd64:
runs-on: ubuntu-latest
permissions: { contents: read, packages: write }
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# build-amd64:
# runs-on: ubuntu-latest
# permissions: { contents: read, packages: write }
# steps:
# - uses: actions/checkout@v4
# - uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
# - id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.IMAGE_NAME }}
# tags: |
# type=raw,value=latest
- name: Build and Push AMD64 Image
uses: docker/build-push-action@v5
with:
context: .
file: ./arch/Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}-amd64
# - name: Build and Push AMD64 Image
# uses: docker/build-push-action@v5
# with:
# context: .
# file: ./arch/Dockerfile
# platforms: linux/amd64
# push: true
# tags: ${{ steps.meta.outputs.tags }}-amd64
create-manifest:
runs-on: ubuntu-latest
needs: [build-arm64, build-amd64]
permissions: { contents: read, packages: write }
steps:
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# create-manifest:
# runs-on: ubuntu-latest
# needs: [build-arm64, build-amd64]
# permissions: { contents: read, packages: write }
# steps:
# - uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
# - id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.IMAGE_NAME }}
# tags: |
# type=raw,value=latest
- name: Create Multi-Arch Manifest
run: |
docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \
${{ env.IMAGE_NAME }}:latest-arm64 \
${{ env.IMAGE_NAME }}:latest-amd64
# - name: Create Multi-Arch Manifest
# run: |
# docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \
# ${{ env.IMAGE_NAME }}:latest-arm64 \
# ${{ env.IMAGE_NAME }}:latest-amd64

View file

@ -1,87 +1,87 @@
name: release - publish docker image to ghcr (latest)
# name: release - publish docker image to ghcr (latest)
env:
IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/archgw
# env:
# IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/archgw
on:
release:
types: [published]
# on:
# release:
# types: [published]
jobs:
build-arm64:
runs-on: [linux-arm64]
permissions: { contents: read, packages: write }
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# jobs:
# build-arm64:
# runs-on: [linux-arm64]
# permissions: { contents: read, packages: write }
# steps:
# - uses: actions/checkout@v4
# - uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
type=raw,value={{tag}}
# - id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.IMAGE_NAME }}
# tags: |
# type=raw,value={{tag}}
- name: Build and Push ARM64 Image
uses: docker/build-push-action@v5
with:
context: .
file: ./arch/Dockerfile
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}-arm64
# - name: Build and Push ARM64 Image
# uses: docker/build-push-action@v5
# with:
# context: .
# file: ./arch/Dockerfile
# platforms: linux/arm64
# push: true
# tags: ${{ steps.meta.outputs.tags }}-arm64
build-amd64:
runs-on: ubuntu-latest
permissions: { contents: read, packages: write }
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# build-amd64:
# runs-on: ubuntu-latest
# permissions: { contents: read, packages: write }
# steps:
# - uses: actions/checkout@v4
# - uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
type=raw,value={{tag}}
# - id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.IMAGE_NAME }}
# tags: |
# type=raw,value={{tag}}
- name: Build and Push AMD64 Image
uses: docker/build-push-action@v5
with:
context: .
file: ./arch/Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}-amd64
# - name: Build and Push AMD64 Image
# uses: docker/build-push-action@v5
# with:
# context: .
# file: ./arch/Dockerfile
# platforms: linux/amd64
# push: true
# tags: ${{ steps.meta.outputs.tags }}-amd64
create-manifest:
runs-on: ubuntu-latest
needs: [build-arm64, build-amd64]
permissions: { contents: read, packages: write }
steps:
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# create-manifest:
# runs-on: ubuntu-latest
# needs: [build-arm64, build-amd64]
# permissions: { contents: read, packages: write }
# steps:
# - uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
type=raw,value={{tag}}
# - id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.IMAGE_NAME }}
# tags: |
# type=raw,value={{tag}}
- name: Create Multi-Arch Manifest
run: |
docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \
${{ steps.meta.outputs.tags }}-arm64 \
${{ steps.meta.outputs.tags }}-amd64
# - name: Create Multi-Arch Manifest
# run: |
# docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \
# ${{ steps.meta.outputs.tags }}-arm64 \
# ${{ steps.meta.outputs.tags }}-amd64

View file

@ -4,7 +4,7 @@
<div align="center">
_Arch is a smart proxy server designed as a modular edge and AI gateway for agents._<br><br>
_Arch is a smart edge and LLM proxy server for agents._<br><br>
Arch handles the *pesky low-level work* in building agentic apps — like applying guardrails, clarifying vague user input, routing prompts to the right agent, and unifying access to any LLM. Its a language and framework friendly infrastructure layer designed to help you build and ship agentic apps faster.
@ -23,6 +23,10 @@ _Arch is a smart proxy server designed as a modular edge and AI gateway for agen
</div>
# About The Latest Release:
[0.3.15] [Preference-aware multi LLM routing for Claude Code 2.0](demos/use_cases/claude_code_router/README.md) <br><img src="docs/source/_static/img/claude_code_router.png" alt="high-level network architecture for ArchGW" width="50%">
# Overview
<a href="https://www.producthunt.com/posts/arch-3?embed=true&utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-arch&#0045;3" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=565761&theme=dark&period=daily&t=1742359429995" alt="Arch - Build&#0032;fast&#0044;&#0032;hyper&#0045;personalized&#0032;agents&#0032;with&#0032;intelligent&#0032;infra | Product Hunt" style="width: 188px; height: 41px;" width="188" height="41" /></a>
@ -48,7 +52,7 @@ With Arch, you can move faster by focusing on higher-level objectives in a langu
- `🧱 Built on Envoy`: Arch runs alongside app servers as a containerized process, and builds on top of [Envoy's](https://envoyproxy.io) proven HTTP management and scalability features to handle ingress and egress traffic related to prompts and LLMs.
**High-Level Sequence Diagram**:
![alt text](docs/source/_static/img/arch_network_diagram_high_level.png)
![high-level network architecture for ArchGW](docs/source/_static/img/arch_network_diagram_high_level.png)
**Jump to our [docs](https://docs.archgw.com)** to learn how you can use Arch to improve the speed, security and personalization of your GenAI apps.

View file

@ -785,7 +785,7 @@ impl HttpContext for StreamContext {
// Extract user message for tracing
self.user_message = deserialized_client_request.get_recent_user_message();
debug!(
info!(
"[ARCHGW_REQ_ID:{}] MODEL_RESOLUTION: req_model='{}' -> resolved_model='{}' provider='{}' streaming={}",
self.request_identifier(),
model_requested,

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB