Skip to content

Commit 2d8984b

Browse files
committed
Merge remote-tracking branch 'origin/main' into merge-train/ag-25
# Conflicts: # .github/workflows/ci.yml # .gitignore
2 parents 24ac515 + dd0856e commit 2d8984b

48 files changed

Lines changed: 3129 additions & 100 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ updates:
88
all:
99
patterns:
1010
- "*"
11+
# Agent Framework DevUI currently requires FastAPI < 0.138.1.
12+
# Keep Dependabot on the compatible line until Microsoft lifts this bound.
13+
ignore:
14+
- dependency-name: "fastapi"
15+
versions: [">= 0.138.1"]
1116
- package-ecosystem: "github-actions"
1217
directory: "/"
1318
schedule:

.github/workflows/ci.yml

Lines changed: 56 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,56 @@
1-
name: CI
2-
3-
on:
4-
push:
5-
branches: [ main ]
6-
pull_request:
7-
8-
permissions:
9-
contents: read
10-
11-
concurrency:
12-
group: ci-${{ github.workflow }}-${{ github.ref }}
13-
cancel-in-progress: true
14-
15-
jobs:
16-
test:
17-
name: Python ${{ matrix.python-version }} / ${{ matrix.os }}
18-
runs-on: ${{ matrix.os }}
19-
timeout-minutes: 20
20-
strategy:
21-
fail-fast: false
22-
matrix:
23-
os: [ubuntu-latest, windows-latest]
24-
python-version: ['3.12']
25-
26-
steps:
27-
- uses: actions/checkout@v7
28-
29-
- name: Set up Python
30-
uses: actions/setup-python@v6
31-
with:
32-
python-version: ${{ matrix.python-version }}
33-
cache: pip
34-
35-
- name: Install dependencies
36-
run: python -m pip install -r requirements.txt
37-
38-
- name: Verify dependency consistency
39-
run: python -m pip check
40-
41-
- name: Contract compatibility (pinned cas-contracts v1.1)
42-
# Consumer-side gate: fails red if autogen's pinned CAS contract version
43-
# or the vendored v1.1 schema release drifts. See
44-
# tests/test_contract_compatibility.py for the validated contract surface.
45-
run: python -m pytest tests/test_contract_compatibility.py -q --tb=short
46-
47-
- name: Run full test suite
48-
run: |
49-
python -m pytest -q --tb=short --cov --cov-branch --cov-report=xml --cov-fail-under=73
50-
51-
- name: Emit branch coverage telemetry
52-
if: always()
53-
shell: python
54-
run: |
55-
import json
56-
import sys
57-
import xml.etree.ElementTree as ET
58-
from pathlib import Path
59-
60-
required = 53.5
61-
coverage_file = Path("coverage.xml")
62-
if not coverage_file.exists():
63-
print(json.dumps({
64-
"event": "ci_failure",
65-
"metric": "branch-rate",
66-
"coverage_percent": None,
67-
"required": required,
68-
"reason": "coverage.xml missing",
69-
}))
70-
sys.exit(1)
71-
72-
branch_rate = float(ET.parse(coverage_file).getroot().attrib["branch-rate"]) * 100.0
73-
passed = branch_rate >= required
74-
print(json.dumps({
75-
"event": "ci_pass" if passed else "ci_failure",
76-
"metric": "branch-rate",
77-
"coverage_percent": round(branch_rate, 2),
78-
"required": required,
79-
}))
80-
sys.exit(0 if passed else 1)
81-
82-
- name: Compile Python sources
83-
run: python -m compileall autogen_starter autogen_dashboard maf_starter main.py -q
84-
85-
- name: Validate dashboard JavaScript
86-
run: node --check autogen_dashboard/static/app.js
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: ci-${{ github.workflow }}-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
jobs:
16+
test:
17+
name: Python ${{ matrix.python-version }} / ${{ matrix.os }}
18+
runs-on: ${{ matrix.os }}
19+
timeout-minutes: 20
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
os: [ubuntu-latest, windows-latest]
24+
python-version: ['3.12']
25+
26+
steps:
27+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
28+
29+
- name: Set up Python
30+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
31+
with:
32+
python-version: ${{ matrix.python-version }}
33+
cache: pip
34+
35+
- name: Install dependencies
36+
run: python -m pip install -r requirements.txt
37+
38+
- name: Verify dependency consistency
39+
run: python -m pip check
40+
41+
- name: Contract compatibility (pinned cas-contracts v1.1)
42+
# Consumer-side gate: fails red if autogen's pinned CAS contract version
43+
# or the vendored v1.1 schema release drifts. See
44+
# tests/test_contract_compatibility.py for the validated contract surface.
45+
run: python -m pytest tests/test_contract_compatibility.py -q --tb=short
46+
47+
- name: Run full test suite
48+
run: |
49+
python -m pip install pytest-cov
50+
python -m pytest -q --tb=short --cov=. --cov-report=xml
51+
52+
- name: Compile Python sources
53+
run: python -m compileall autogen_starter autogen_dashboard maf_starter main.py -q
54+
55+
- name: Validate dashboard JavaScript
56+
run: node --check autogen_dashboard/static/app.js

.github/workflows/codeql.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ jobs:
1919
language: [ 'javascript', 'python' ]
2020
steps:
2121
- name: Checkout repository
22-
uses: actions/checkout@v7
22+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
2323
- name: Initialize CodeQL
24-
uses: github/codeql-action/init@v4
24+
uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4
2525
with:
2626
languages: ${{ matrix.language }}
2727
- name: Autobuild
28-
uses: github/codeql-action/autobuild@v4
28+
uses: github/codeql-action/autobuild@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4
2929
- name: Perform CodeQL Analysis
30-
uses: github/codeql-action/analyze@v4
30+
uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4

.github/workflows/pages.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ jobs:
1414
runs-on: ubuntu-latest
1515
timeout-minutes: 15
1616
steps:
17-
- uses: actions/checkout@v7
18-
- uses: actions/setup-python@v6
17+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
18+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
1919
with:
2020
python-version: 3.x
2121
- run: pip install mkdocs-material
2222
- run: mkdocs build
23-
- uses: actions/upload-pages-artifact@v5
23+
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
2424
with:
2525
path: ./site
2626
deploy:
@@ -36,4 +36,4 @@ jobs:
3636
steps:
3737
- name: Deploy to GitHub Pages
3838
id: deployment
39-
uses: actions/deploy-pages@v5
39+
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5

.github/workflows/pr-lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ jobs:
1313
permissions:
1414
pull-requests: read
1515
steps:
16-
- uses: amannn/action-semantic-pull-request@v6
16+
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6
1717
env:
1818
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
release-please:
9+
permissions:
10+
contents: write
11+
pull-requests: write
12+
issues: write
13+
uses: Coding-Autopilot-System/.github/.github/workflows/release-please-reusable.yml@64c1673088ff7802f1270a44f03bc4d7a10631f2

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
issues: write
1212
pull-requests: write
1313
steps:
14-
- uses: actions/stale@v10
14+
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10
1515
with:
1616
days-before-stale: 60
1717
days-before-close: 7

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,9 @@ state/
1313
.coverage
1414
coverage.xml
1515
htmlcov/
16+
17+
.tmp-gh-*.ps1
18+
19+
.tmp-venv*/
20+
21+
TestResults/

.release-please-manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{".": "0.0.0"}

Dockerfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM python:3.12-slim
2+
3+
WORKDIR /app
4+
5+
COPY requirements.txt .
6+
RUN pip install --no-cache-dir -r requirements.txt
7+
8+
# Install chromadb dependencies
9+
RUN pip install --no-cache-dir chromadb win11toast
10+
11+
COPY . .
12+
13+
# Expose FastAPI Dashboard
14+
EXPOSE 8000
15+
16+
# Run the watchdog daemon by default
17+
CMD ["python", "scripts/watchdog.py"]

0 commit comments

Comments
 (0)