Skip to content

Commit 4381e1c

Browse files
committed
chore(satellite): sync metis from aicom monorepo
Auto-generated by scripts/mirror_satellites.sh
0 parents  commit 4381e1c

267 files changed

Lines changed: 30493 additions & 0 deletions

File tree

Some content is hidden

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

.dockerignore

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Build context exclusions — production image has no test/mock code
2+
.git
3+
.gitignore
4+
.venv
5+
venv
6+
__pycache__
7+
*.py[cod]
8+
*.egg-info
9+
dist
10+
build
11+
.pytest_cache
12+
.mypy_cache
13+
*.db
14+
.env
15+
.env.*
16+
!.env.example
17+
!config/docker.env.example
18+
19+
# Tests and dev tooling (no mock provider in production image)
20+
tests/
21+
docs/
22+
data/
23+
*.md
24+
!README.md
25+
26+
# Local configs with secrets
27+
config.production.yaml
28+
config.example.yaml
29+
30+
# IDE / OS
31+
.idea
32+
.vscode
33+
.DS_Store
34+
*.swp
35+
36+
# Docker compose (not needed inside image)
37+
docker-compose*.yml
38+
Dockerfile*
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Bug report
2+
description: Something is broken or incorrect
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for filing a bug. Include enough detail for a maintainer to reproduce.
9+
- type: textarea
10+
id: summary
11+
attributes:
12+
label: Summary
13+
description: What went wrong in one or two sentences?
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: steps
18+
attributes:
19+
label: Steps to reproduce
20+
placeholder: |
21+
1. ...
22+
2. ...
23+
3. ...
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: expected
28+
attributes:
29+
label: Expected behavior
30+
validations:
31+
required: true
32+
- type: textarea
33+
id: actual
34+
attributes:
35+
label: Actual behavior
36+
validations:
37+
required: true
38+
- type: input
39+
id: version
40+
attributes:
41+
label: Version or commit
42+
placeholder: v1.2.3 or main@abc1234
43+
- type: dropdown
44+
id: component
45+
attributes:
46+
label: Area
47+
options:
48+
- CI / build
49+
- Documentation
50+
- Hub / protocol
51+
- SDK / client
52+
- UI / frontend
53+
- Other
54+
validations:
55+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security policy
4+
url: mailto:security@aicom.io
5+
about: Report vulnerabilities responsibly (see SECURITY.md in this repository)
6+
- name: Ecosystem docs
7+
url: https://modeldev.modelmarket.dev
8+
about: AI-Factory + AIMarket overview and live demos
9+
issue_templates:
10+
- name: Bug report
11+
description: Something is broken or incorrect
12+
labels: ["bug"]
13+
filename: bug_report.yml
14+
- name: Feature request
15+
description: Propose an improvement
16+
labels: ["enhancement"]
17+
filename: feature_request.yml
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Feature request
2+
description: Propose an improvement
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Describe the problem and the change you want. Link related issues or specs if any.
9+
- type: textarea
10+
id: problem
11+
attributes:
12+
label: Problem / use case
13+
description: What pain point does this solve?
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: proposal
18+
attributes:
19+
label: Proposed solution
20+
validations:
21+
required: true
22+
- type: textarea
23+
id: alternatives
24+
attributes:
25+
label: Alternatives considered
26+
- type: checkboxes
27+
id: scope
28+
attributes:
29+
label: Contribution
30+
options:
31+
- label: I am willing to open a PR for this
32+
required: false

.github/pull_request_template.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## Summary
2+
3+
<!-- What changed and why (1–3 sentences). -->
4+
5+
## Type
6+
7+
- [ ] Bug fix
8+
- [ ] Feature
9+
- [ ] Refactor / chore
10+
- [ ] Docs
11+
- [ ] Security
12+
13+
## Checklist
14+
15+
- [ ] Tests added or updated (or N/A — explain why)
16+
- [ ] CI passes locally or on fork
17+
- [ ] No secrets, API keys, or `.env` values committed
18+
- [ ] Docs updated if behavior or env vars changed
19+
- [ ] Breaking changes called out below (if any)
20+
21+
## Breaking changes
22+
23+
<!-- None, or describe migration steps. -->
24+
25+
## Test plan
26+
27+
<!-- How a reviewer can verify this PR. -->

.github/workflows/benchmark.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Benchmark
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
models:
7+
description: "Comma-separated models (e.g. deepseek-chat,gpt-4o-mini)"
8+
required: false
9+
default: "deepseek-chat"
10+
dataset:
11+
description: "Dataset name or all"
12+
required: false
13+
default: "all"
14+
15+
jobs:
16+
benchmark:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- uses: actions/setup-python@v5
22+
with:
23+
python-version: "3.11"
24+
25+
- name: Install package
26+
run: pip install -e ".[dev]"
27+
28+
- name: Run mock harness tests (CI-safe)
29+
run: pytest tests/benchmarks -m benchmark -q
30+
31+
- name: Run live benchmarks (skipped without API keys)
32+
env:
33+
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
34+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
35+
run: |
36+
metis-benchmark run \
37+
--models "${{ github.event.inputs.models }}" \
38+
--dataset "${{ github.event.inputs.dataset }}" \
39+
--compare direct,metis \
40+
--output reports/bench-${{ github.run_id }}.md || true
41+
42+
- name: Upload report
43+
if: always()
44+
uses: actions/upload-artifact@v4
45+
with:
46+
name: benchmark-report
47+
path: reports/
48+
if-no-files-found: ignore

.github/workflows/ci.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, master]
6+
pull_request:
7+
branches: [main, master]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
python-version: ["3.9", "3.11", "3.12"]
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up Python
20+
uses: actions/setup-python@v5
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
24+
- name: Install dependencies
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install -e ".[dev,distributed]" pytest-cov hypothesis
28+
29+
- name: Run tests with coverage
30+
if: matrix.python-version != '3.11'
31+
run: |
32+
pytest --cov=metis --cov-report=term-missing -v
33+
34+
- name: Coverage badge
35+
if: matrix.python-version == '3.11'
36+
run: bash scripts/ci_coverage_badge.sh

.github/workflows/pages.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Pages — landing
2+
3+
# Publish docs/landing/ → https://alexar76.github.io/metis/
4+
on:
5+
push:
6+
branches: [main]
7+
paths:
8+
- docs/landing/**
9+
- .github/workflows/pages.yml
10+
workflow_dispatch:
11+
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
17+
concurrency:
18+
group: pages-metis
19+
cancel-in-progress: true
20+
21+
jobs:
22+
deploy:
23+
runs-on: ubuntu-latest
24+
environment:
25+
name: github-pages
26+
url: ${{ steps.deployment.outputs.page_url }}
27+
steps:
28+
- uses: actions/checkout@v4
29+
30+
- name: Ensure Pages source is GitHub Actions
31+
continue-on-error: true
32+
env:
33+
GH_TOKEN: ${{ github.token }}
34+
run: |
35+
gh api --method PUT "/repos/${{ github.repository }}/pages" \
36+
-f build_type=workflow
37+
38+
- uses: actions/configure-pages@v5
39+
40+
- uses: actions/upload-pages-artifact@v3
41+
with:
42+
path: docs/landing
43+
44+
- id: deployment
45+
uses: actions/deploy-pages@v4

.github/workflows/release.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: "3.11"
22+
23+
- name: Install build tools
24+
run: pip install build twine
25+
26+
- name: Build wheel and sdist
27+
run: python -m build
28+
29+
- name: Run tests
30+
run: |
31+
pip install -e ".[dev,distributed]" pytest-cov
32+
pytest -q
33+
34+
- name: Upload release artifacts
35+
uses: softprops/action-gh-release@v2
36+
with:
37+
files: |
38+
dist/*
39+
generate_release_notes: true

.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
__pycache__/
2+
*.py[cod]
3+
.venv/
4+
venv/
5+
.env
6+
*.egg-info/
7+
dist/
8+
build/
9+
.pytest_cache/
10+
.mypy_cache/
11+
.coverage
12+
.hypothesis/
13+
reports/
14+
data/
15+
*.db

0 commit comments

Comments
 (0)