Skip to content

Commit 2d56a21

Browse files
committed
feat: Initialize OAL Agent project structure with core components
1 parent f94be12 commit 2d56a21

File tree

313 files changed

+1665
-6866
lines changed

Some content is hidden

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

313 files changed

+1665
-6866
lines changed

.env.example

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# API Configuration
2+
API_HOST=0.0.0.0
3+
API_PORT=8000
4+
5+
# Database
6+
DATABASE_URL=sqlite:///./oal_agent.db
7+
8+
# Queue
9+
QUEUE_URL=redis://localhost:6379
10+
11+
# LLM Configuration
12+
LLM_PROVIDER=openai
13+
LLM_API_KEY=your-api-key-here
14+
15+
# Security
16+
SECRET_KEY=change-this-to-a-random-secret-key
17+
18+
# Logging
19+
LOG_LEVEL=INFO

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
python-version: ["3.9", "3.10", "3.11"]
15+
16+
steps:
17+
- uses: actions/checkout@v3
18+
19+
- name: Set up Python ${{ matrix.python-version }}
20+
uses: actions/setup-python@v4
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 -r requirements.txt
28+
pip install -r requirements-dev.txt
29+
30+
- name: Run tests
31+
run: |
32+
bash scripts/test.sh

.github/workflows/lint.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Lint
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
lint:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v3
15+
16+
- name: Set up Python
17+
uses: actions/setup-python@v4
18+
with:
19+
python-version: "3.11"
20+
21+
- name: Install dependencies
22+
run: |
23+
python -m pip install --upgrade pip
24+
pip install -r requirements-dev.txt
25+
26+
- name: Run linters
27+
run: |
28+
bash scripts/lint.sh

.gitignore

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,31 @@ Thumbs.db
5757
*.bak
5858
*.tmp
5959

60-
# Project specific
61-
*.log
62-
*.db
63-
*.sqlite3
64-
*.coverage
65-
htmlcov/
60+
# Testing
6661
.pytest_cache/
62+
.coverage
63+
htmlcov/
64+
.tox/
65+
.nox/
66+
67+
# Data files (keep .gitkeep files)
68+
data/datasets/*.csv
69+
data/datasets/*.json
70+
data/datasets/*.parquet
71+
!data/datasets/.gitkeep
72+
!data/contracts/.gitkeep
73+
74+
# Model files (large models, keep .gitkeep files)
75+
models/**/*.pt
76+
models/**/*.pth
77+
models/**/*.h5
78+
models/**/*.onnx
79+
models/**/*.pkl
80+
!models/**/.gitkeep
81+
82+
# Redis
83+
dump.rdb
84+
85+
# Temporary files
86+
tmp/
87+
temp/

.pre-commit-config.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
repos:
2+
- repo: https://github.com/pre-commit/pre-commit-hooks
3+
rev: v4.5.0
4+
hooks:
5+
- id: trailing-whitespace
6+
- id: end-of-file-fixer
7+
- id: check-yaml
8+
- id: check-json
9+
- id: check-toml
10+
- id: check-added-large-files
11+
- id: check-merge-conflict
12+
- id: mixed-line-ending
13+
14+
- repo: https://github.com/psf/black
15+
rev: 23.12.1
16+
hooks:
17+
- id: black
18+
language_version: python3.11
19+
20+
- repo: https://github.com/pycqa/isort
21+
rev: 5.13.2
22+
hooks:
23+
- id: isort
24+
25+
- repo: https://github.com/pycqa/flake8
26+
rev: 7.0.0
27+
hooks:
28+
- id: flake8
29+
args: ["--max-line-length=88", "--extend-ignore=E203"]

LICENSE_HEADER

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (C) 2025 OpenAuditLabs
2+
#
3+
# This program is free software: you can redistribute it and/or modify
4+
# it under the terms of the GNU Affero General Public License as published
5+
# by the Free Software Foundation, either version 3 of the License, or
6+
# (at your option) any later version.
7+
#
8+
# This program is distributed in the hope that it will be useful,
9+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
# GNU Affero General Public License for more details.
12+
#
13+
# You should have received a copy of the GNU Affero General Public License
14+
# along with this program. If not, see <https://www.gnu.org/licenses/>.

0 commit comments

Comments
 (0)